gpt4 book ai didi

msbuild - 使用 Visual Studio 2012 时 SignTool.exe 或 "Windows Kits"目录的路径

转载 作者:行者123 更新时间:2023-12-03 07:02:14 41 4
gpt4 key购买 nike

使用 Visual Studio 2012 时如何获取 SignTool.exe 的路径?

在 Visual Studio 2010 中,您可以使用

<Exec Command="&quot;$(FrameworkSDKDir)bin\signtool.exe&quot; sign /p ... />

其中 $(FrameworkSDKDir)

"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\"

但在 Visual Studio 2012 中,$(FrameworkSDKDir)

 "C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\"

SignTool 位于

 "c:\Program Files (x86)\Windows Kits\8.0\bin\x64\"

除了硬编码之外,还有其他方法可以获取此目录的路径吗(我尝试过 FrameworkSDKDirWindowsSDKDir,但两者都指向 v8.0A 目录)。

(我知道 SignFile MSBuild 任务,但我无法使用它,因为它不接受证书密码。)

最佳答案

我刚刚遇到了同样的问题。从 Visual Studio 2012 命令提示符运行构建可行,但在 IDE 中失败。寻找详细或诊断日志使我找到了What is the default location for MSBuild logs? ,这告诉我 Visual Studio 无法提供我真正需要的诊断信息。

这就是我最终修复它的方法。

打开普通命令提示符(不是 Visual Studio 命令提示符),然后通过完全限定 MSBuild 的路径 (%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe) 来运行 msbuild。这最终给了我与 Visual Studio 2012 中收到的相同的错误消息(错误代码 9009)。

然后,通过附加/v:diag 开关,使用“诊断”日志记录(显示所有属性和项值)运行相同的构建。

从这个输出中,我了解到它确实有一些新属性,我可以使用它们来获取signtool.exe 的位置(摘录如下):

windir = C:\Windows
windows_tracing_flags = 3
windows_tracing_logfile = C:\BVTBin\Tests\installpackage\csilogfile.log
WindowsSDK80Path = C:\Program Files (x86)\Windows Kits\8.0\
WIX = C:\Program Files (x86)\WiX Toolset v3.7\

因此,我解决此问题的方法是将以下内容添加到我的 *.targets 文件中:

<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>

希望这对您也有帮助。我在序言中介绍了我是如何达到这一点的,因为还有其他可用的属性可能更适合您的目的。

关于msbuild - 使用 Visual Studio 2012 时 SignTool.exe 或 "Windows Kits"目录的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14082020/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com