Act*_*inz 5 msbuild signtool visual-studio-2017
我已经进行了基于 Visual Studio 2012 的项目。通过以下方式找到了 signtool.exe 的路径:
<SignToolPath Condition=" Exists('$(WindowsSDK80Path)bin\x86\signtool.exe') and '$(SignToolPath)'=='' and '$(PROCESSOR_ARCHITECTURE)'=='x86' ">$(WindowsSDK80Path)bin\x86\signtool.exe</SignToolPath>
<SignToolPath Condition=" Exists('$(WindowsSDK80Path)bin\x64\signtool.exe') and '$(SignToolPath)'=='' and '$(PROCESSOR_ARCHITECTURE)'=='AMD64' ">$(WindowsSDK80Path)bin\x64\signtool.exe</SignToolPath>
Run Code Online (Sandbox Code Playgroud)
现在我想将项目移植到 Visual Studio 2017。安装后,由于缺少 Windows SDK 8,以这种方式获取路径不再有效。
我已经安装了 Click Once 组件和 Windows 10 SDK。因此 signtool.exe 可用。
有人能告诉我如何使用 Visual Studio 2017 找到路径吗?
有人可以告诉我如何找到 Visual Studio 2017 的路径吗?
SignToolPath您可以根据配置从注册表中查找并设置变量:
<PropertyGroup>
<WindowsKitsRoot>$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots', 'KitsRoot10', null, RegistryView.Registry32, RegistryView.Default))</WindowsKitsRoot>
<WindowsKitsRoot Condition="'$(WindowsKitsRoot)' == ''">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots', 'KitsRoot81', null, RegistryView.Registry32, RegistryView.Default))</WindowsKitsRoot>
<WindowsKitsRoot Condition="'$(WindowsKitsRoot)' == ''">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots', 'KitsRoot', null, RegistryView.Registry32, RegistryView.Default))</WindowsKitsRoot>
<SignToolPath Condition=" '$(SignToolPath)' == '' And '$(Platform)' == 'AnyCPU' ">$(WindowsKitsRoot)bin\x86\</SignToolPath>
<SignToolPath Condition="'$(SignToolPath)' == ''">$(WindowsKitsRoot)bin\$(Platform)\</SignToolPath>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我们可以将此属性设置到我们的项目文件或.target文件中,然后将其导入到项目文件中。
或者,您可以将环境变量设置为SignToolPath全局系统路径(通过控制面板->系统->高级系统设置->环境变量):
C:\Program Files (x86)\Windows Kits\10\bin\x86
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
2858 次 |
| 最近记录: |