Visual Studio 2017 使用的是哪个版本的 SignTool?

Which version of SignTool is Visual Studio 2017 using?

我有一个项目,我从 Visual Studio 2013 在 Windows 8.1 盒子上迁移到我的新工作站,Win 10 上的 VS 2017。一切正常,直到我尝试使用 ClickOnce 发布。 ClickOnce 部署成功,但我无法安装已部署的应用程序。经过一些研究,我怀疑这个问题与签署清单有关。我将证书更新为 SHA 256 证书,现在我什至无法构建应用程序。我收到错误:

SignTool 错误:无效选项:/fd

我已经安装了最新的 Windows SDK 并且我有支持 /fd 的 a 版本的 SignTool,但我仍然在 VS 中看到错误。似乎有许多版本的 SignTool 分散在我的文件系统中。 我怎样才能 tell/change Visual Studio 试图用来签署我的代码的那个?

Open the Developer Command Prompt for VS2017。现在环境变量已经设置好了。在提示符下键入:

where signtool

现在您有了 signtool.exe 的路径,Visual Studio 2017 正在使用它。

我在将旧的 ClickOnce 项目从 VS2018 迁移到 VS2017 时遇到了相同的错误消息。

我发现(并成功)了更改注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows 以使 Windows 使用更新的 SDK 的提示(在我的情况下,SDK v8.1A 是最新的)。

原始提示可以在这里找到: https://social.msdn.microsoft.com/Forums/en-US/a39b9f82-aaec-4bbd-8cb2-3cade50796ba/an-error-occurred-while-signing-failed-to-sign-bindebugapppublishprogramexe-signtool-error (向下滚动以回答 nikidimi