- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Visual Studio 2012 时如何获取 SignTool.exe 的路径?
在 Visual Studio 2010 中,您可以使用
<Exec Command=""$(FrameworkSDKDir)bin\signtool.exe" 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\"
除了硬编码之外,还有其他方法可以获取此目录的路径吗(我尝试过 FrameworkSDKDir
和 WindowsSDKDir
,但两者都指向 v8.0A 目录)。
最佳答案
我刚刚遇到了同样的问题。从 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/
如何在 Visual Studio 2015 for Windows 10 中安装 SignTool.exe?我尝试构建我的项目,但程序抛出错误: Error An error occurred wh
我有那个文件。 (在“...\Program Files\Microsoft SDKs...”中)。我去了已安装的程序(在控制面板中)并“重新安装”了它。 那么为什么命令提示符不能识别它呢? 最佳答案
我正在使用以下命令运行 SignTool: signtool sign/f keyfile.pfx/p mypassword pathToMsiFile.msi 我收到以下错误: SignTool E
我在windows 10 pro上使用windows WinVerifyTrust函数来验证dll签名。当我第一次激活此函数时,该函数需要4秒来执行并返回第一个dll的验证状态。对于其他正在进行的 d
有关尝试使用 SHA1/SHA256 进行双重签名时遇到的失败的问题。 我已经拥有 SHA256 代码签名证书几年了,但在新年(2016 年)之前,我开始使用/fd SHA256 作为哈希算法,以符合
时间戳是可选参数,所以请有人解释带时间戳的 exe 文件和不带时间戳的区别吗?如果我跳过这个选项会怎样? 最佳答案 如果您跳过时间戳选项,那么当您的证书过期时,exe 上将不再有有效的证书。如果您使用
好的,所以我尝试在 VS2010 中发布一些东西,但它说找不到 signtool。我尝试将其复制并粘贴到 VS2010 SDK 3.5 目录中,但仍然无法正常工作。我厌倦了重新安装 VS2010,但它
Severity Code Description Project File Line Suppression State Error An error occurred while signing:
我正在尝试创建测试证书并签署我创建的 .MSI 文件。在我们购买真正的安全证书之前,我需要获得使用签名的 .MSI 的测试版本。 我已执行以下步骤来签署我的 .MSI 文件。一切都成功完成,并显示一条
我正在尝试使用 SignTool.exe 对安装在 Windows 证书存储中的证书的可执行文件进行代码签名。我可以通过将证书安装到 Local Machine/Personal 部分然后以管理员身份
我在哪里可以找到程序 SignTool.exe 的这个错误的含义? "Error: SignerSign() failed." (-1073700864/0xc000a000) 调用命令时,我已经随机
我正在编写自定义 CNG 提供程序( key 存储提供程序)以允许在 Signtool.exe 中使用我们的私有(private) HSM API 进行签名我在我的 CNG 提供程序中实现了 API,
我正在尝试使用 SignTool 和 cmd.exe 中的以下代码对带有 pfx 文件的外部 dll 进行签名 SignTool sign/f MyCert.pfx/p MyPassword MyCo
因此,我使用 Windows SDK 8.1 中的 signtool 对二进制文件进行签名: "C:\Program Files (x86)\Windows Kits\8.1\bin\x64\sign
在尝试签署由我工作的公司创建的一些安装程序时,我遇到了一个错误,我无法解决。我正在使用已在另一台机器(Win7)上成功使用的相同证书,以相同的方式为准相同的安装程序签名。无论如何,在运行 Cruise
我有一个我完全不明白的问题。几天前,我从我们的供应商 (GlobalSign) 那里颁发了一份新的代码签名证书。 在使用执行构建/代码签名的用户登录到构建服务器后,我启动了 certmgr,导航到个人
我正在设置一台新的开发笔记本电脑,并安装了一个自行颁发的代码签名证书。我可以在当前用户的个人证书下的 certmgr 中看到它。 当我尝试从 Visual Studio 2017 的开发人员命令提示构
在我的应用程序中,我需要验证它是否已签名。如果已签名,则继续执行,否则退出应用程序。 signtool 将用于签署应用程序。是否有任何 C# 代码可以执行此操作? 最佳答案 这是一个实用方法: var
我正在编写一个 Powershell 脚本来复制 signtool.exe做。我在安装程序 exe 上使用它。 我发现 Set-AuthenticodeSignature使用证书处理文件签名,但我也在
当我尝试更新我正在制作的项目时 - 我第一次看到错误: 'An error occurred while signing: SignTool.exe not found.' 我以前从未见过这个,所以我
我是一名优秀的程序员,十分优秀!