【发布时间】:2016-01-16 12:23:09
【问题描述】:
我有一个项目要升级到 Visual Studio 2015,但它仍以 .NET 4.5.1 为目标。
只要 $(WindowsSDKBinPath) 设置为 Windows 10 SDK“C:\Program Files (x86)\Windows Kits\10\bin\x86\”,signtool.exe 就会以退出代码 255 退出,并且输出会像以下:
The following certificate was selected:
Issued to: XXXX
Issued by: VeriSign Class 3 Code Signing 2010 CA
Expires: Tue Apr 11 19:59:59 2017
SHA1 hash: XXXX
Done Adding Additional Store
如果要发生错误,通常会在此处显示错误,但仅此而已,它会在此处中断并以退出代码 255 退出。
如果 $(WindowsSDKBinPath) 设置为 Windows 8.1 SDK "C:\Program Files (x86)\Windows Kits\8.1\bin\x86\" 那么一切都很好。 SignTool.exe 对 dll 进行签名没有任何问题,并像正常一样以代码 0 退出。
谁能帮我弄清楚如何使用较新的signtool,或者至少知道它为什么不起作用?下面是我添加到我的 csproj 文件中以在构建后对其进行签名的目标。谢谢。
<Target Name="AuthenticodeProjectSign" AfterTargets="AfterBuild">
<PropertyGroup>
<AuthenticodeTimestampServerUrl>http://timestamp.verisign.com/scripts/timstamp.dll</AuthenticodeTimestampServerUrl>
<TargetAssembly>$(OutDir)$(TargetFileName)</TargetAssembly>
</PropertyGroup>
<Exec Command=""$(WindowsSDKBinPath)signtool.exe" sign /v /sha1 $(AuthenticodeCertificateSHA1) /t $(AuthenticodeTimestampServerUrl) "$(TargetAssembly)"" />
</Target>
【问题讨论】:
-
虽然很遗憾我没有这个问题的答案,但我只想说谢谢你帮助我解决了我的问题。我有完全相同的问题。尝试使用 Windows 10 SDK SignTool.exe 导致 255 退出代码。 (这把我带到了这里)。将 ClickOnce 发布工具添加到 VS,然后使用 8.1 SDK SignTool.exe 工作得很好(正如您在问题中提到的那样)。不确定这是一个错误还是新 signtool 中的什么,但我很高兴能让事情正常进行。谢谢。
-
你有没有办法让它在 windows 10 sdk 上工作?我们也在做这个解决方法,但最好知道它为什么不适用于 win 10 sdk 版本:-s
标签: msbuild visual-studio-2015 windows-10