如何在Visual Studio 2015中为Windown 10安装SignTool.exe?我试图构建我的项目,但是程序抛出错误:
错误签名时发生错误:找不到SignTool.exe。
如何在Visual Studio 2015中为Windown 10安装SignTool.exe?我试图构建我的项目,但是程序抛出错误:
错误签名时发生错误:找不到SignTool.exe。
Error An error occurred while signing: Failed to sign bin\Debug\app.publish\LotusGenCode.exe. SignTool Error: Invalid option: /fd LotusGenCode
Answers:
您需要安装Windows 10 SDK。
Visual Studio 2015安装程序将启动。选择“修改”。
在Visual Studio组件列表中找到“通用Windows App开发工具”,打开子项列表,然后选择“ Windows 10 SDK(10.0.10240)”。
VS 2015 Update 1安装程序中的Windows 10 SDK
正如josant所写-安装完成后,您将在以下文件夹中找到SignTool.exe:
C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86
| C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64
如果你只是想SignTool真的希望尽量减少安装,这里是一个办法,我只是逆向工程我的方式:
.iso
从https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk下载文件(当前下载链接为http://go.microsoft.com/fwlink/p/?LinkID=2022797).exe
下载将不起作用,因为它是一个在线安装程序,在运行时会降低其依赖性。.iso
使用7-zip之类的工具打开的包装。Installers/Windows SDK Signing Tools-x86_en-us.msi
文件-只有388 KiB大。作为参考,它从以下.cab
文件中提取文件,因此独立安装也需要这些文件:
4c3ef4b2b1dc72149f979f4243d2accf.cab
(339 KiB)685f3d4691f444bc382762d603a99afc.cab
(1002 KiB)e5c4b31ff9997ac5603f4f28cd7df602.cab
(389 KiB)e98fa5eb5fee6ce17a7a69d585870b7c.cab
(1.2 MiB)我们去那里-你现在拥有signtool.exe
的文件和同伴C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64
(替换x64
用x86
,arm
或者arm64
如果你需要它的另一个CPU架构。)
signtool.exe
如果要在CI场景中使用它,也可以将其他文件夹中的文件和其他文件提交 到版本控制存储库中。我已经尝试过了,它似乎工作正常。
(可能不需要所有文件,因为.exe
此文件夹中还有一些其他工具可能负责这些依赖关系,但是我不确定可以删除哪些工具以使文件集更小。其他人可以自由研究:)我试图只复制signtool.*
而没有用,所以至少需要一些其他文件。)
install
对我不起作用。我收到了错误The system cannot find the file specified.
.iso
更容易,但在其他情况下,您可能希望获取二进制文件以及所有依赖项(例如signtool.exe
,将您的朋友和朋友登录到git存储库中,并在AppVeyor,Jenkins等中签名构建)
按照问题中的注释...在Windows 10上,Signtool.exe和其他SDK工具已移至“%programfiles(x86)%\ Windows Kits \”中。
Windows 10上signtool的典型路径
SDK 8.0和8.1的工具也位于“ Windows Kits”文件夹中。
在2019年,这是Microsoft有关如何获取此工具的最新链接:
SignTool工具是一种命令行工具,可对文件进行数字签名,验证文件中的签名或时间戳文件。有关为什么签名文件如此重要的信息,请参见代码签名简介。该工具安装在Microsoft Windows软件开发工具包(SDK)安装路径的\ Bin文件夹中。
SignTool是Windows SDK的一部分,您可以从https://go.microsoft.com/fwlink/p/?linkid=84091下载。
我只需要signtool,所以我选择了我想出的最小工具,现在signtool.exe在 C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe
Microsoft文章链接:https : //docs.microsoft.com/zh-cn/windows/win32/seccrypto/signtool
如果您使用的是VS Express 2015,则只需转到控制面板->程序和功能->选择vs 2015->单击更改,然后在VS Express安装程序中选择“修改”->选择发布工具,并完成。安装完成更改后,您将可以创建安装程序。
我通过“控制面板”,“程序和功能”对Visual Studio进行了修改。该SDK最初并不明显,所以我安装了一些通用工具,其中包括SDK Update 3。
SignTool可作为Windows SDK(Visual Studio Community 2015附带)的一部分提供。确保在安装Visual Studio 2015的过程中从功能列表中选择“ ClickOnce发布工具”,以获取SignTool。
一旦安装了Visual Studio,就可以signtool
从Visual Studio命令提示符运行命令。
默认情况下(在Windows 10上)SignTool将安装在:
C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe
仅安装winsdksetup.exe的signingtools(与上述Windows sdk iso相同的网址提供),这是一个选项,直接从我正在使用的Dockerfile中运行:RUN powershell Start-Process winsdksetup.exe -ArgumentList '/ features OptionId.SigningTools','/ q','/ ceip off','/ norestart',-NoNewWindow -Wait
因此,如果您在Windows中,则为:winsdksetup.exe / features OptionId.SigningTools
winsdksetup / h为您提供了选项,因此在这里我不会对其进行总结。我包括了dockerfile代码段,因为那是我开始寻找解决方案的那一天。