我正在尝试让我的WiX引导程序安装程序在Visual Studio中签名。我正在跟踪WiX中显示的示例:Digitally Sign BootBosstr项目
不幸的是,必须使用显式路径对工具进行签名才能使其正常工作。
<Target Name="UsesFrameworkSdk">
<GetFrameworkSdkPath>
<Output TaskParameter="Path" PropertyName="FrameworkSdkPath" />
</GetFrameworkSdkPath>
<Message Text="SDK path = '$(FrameworkSdkPath)'" Importance="high"/>
</Target>
<Target Name="UsesSignTool" DependsOnTargets="UsesFrameworkSdk">
<PropertyGroup>
<SignToolPath>C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe</SignToolPath>
</PropertyGroup>
</Target>
FrameworkSdkPath变量返回“ C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v10.0A \”,这不是签名工具所在的位置。
如果我启动VS命令工具,则将环境变量WindowsSdkDir设置为包含signtool.exe的目录。但是,未在Visual Studio中设置此变量。
如何正确执行此操作,这样我就不必设置显式路径了?
如何正确执行此操作,这样我就不必设置显式路径了?
从示例中,我们可以从注册表中获取路径。像这样:
<Target Name="UsesFrameworkSdk">
<GetFrameworkSdkPath>
<Output TaskParameter="Path" PropertyName="FrameworkSdkPath" />
</GetFrameworkSdkPath>
<PropertyGroup>
<Win10SDK>$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@InstallationFolder)</Win10SDK>
</PropertyGroup>
<Message Text="SDK path = '$(Win10SDK)'" Importance="high"/>
</Target>
<Target Name="UsesSignTool" DependsOnTargets="UsesFrameworkSdk">
<PropertyGroup>
<SignToolPath Condition="('@(SignToolPath)'=='') and Exists('$(Win10SDK)\bin\x86\signtool.exe')">$(Win10SDK)\bin\x86\signtool.exe</SignToolPath>
</PropertyGroup>
</Target>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句