如何为Windows 10安装SignTool.exe


92

如何在Visual Studio 2015中为Windown 10安装SignTool.exe?我试图构建我的项目,但是程序抛出错误:

错误签名时发生错误:找不到SignTool.exe。


如果已有该工具,请尝试查看%programfiles(x86)%\ Microsoft SDKs \ Windows \ v7.0A \ Bin。参见blogs.msdn.com/b/vsnetsetup/archive/2013/11/18/…
jtabuloc

@JrTabuloc我正在使用VS 2015,但我在%programfiles(x86)%\ Microsoft SDKs \ Windows \ v7.0A \ Bin中没有signtool.exe
Loint 2015年

4
Windows 10 WDK默认安装在“%ProgramFiles(x86)%\ Windows Kits \ 10”路径上。如果该工具存在,请尝试查看“%ProgramFiles(x86)%\ Windows Kits \ 10 \ bin \ x86”。
2015年

您也可以尝试使用“%WindowsSdkDir%\ bin \ x86”或“%WindowsSdkDir%\ bin \ x64”路径。如果在命令行外壳中没有“%WindowsSdkDir%”环境变量,则可以为其调用类似“%VS140COMNTOOLS%.. \ .. \ vc \ vcvarsall.bat”的名称。
2015年

@hal我找到了signtool.exe并将其复制到%programfiles(x86)%\ Microsoft SDKs \ Windows \ v7.0 \ Bin中。我再次尝试构建解决方案,但它引发了一个新错误 Error An error occurred while signing: Failed to sign bin\Debug\app.publish\LotusGenCode.exe. SignTool Error: Invalid option: /fd LotusGenCode
2015年

Answers:


120

您需要安装Windows 10 SDK。

  1. Visual Studio 2015更新1已包含它,但默认情况下未安装它。您应该转到控制面板->程序和功能,找到Microsoft Visual Studio 2015并选择“更改”。

Visual Studio 2015安装程序将启动。选择“修改”。

在Visual Studio组件列表中找到“通用Windows App开发工具”,打开子项列表,然后选择“ Windows 10 SDK(10.0.10240)”。

VS 2015 Update 1安装程序中的Windows 10 SDK

  1. 因此,您可以直接从Microsoft安装Windows 10 SDK:https : //go.microsoft.com/fwlink/?LinkID=698771

正如josant所写-安装完成后,您将在以下文件夹中找到SignTool.exe:

  • x86-> c:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ x86
  • x64-> c:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ x64 \

27
就其价值而言,如果仅需要signtool.exe,则在From SDK 10安装程序中,唯一需要启用的功能是Windows Software Development Kit为您节省了大约400MB。数量不多,但是有点。
mateuscb '16

3
@Steve欢迎来到Windows开发的精彩世界,这里的功能
非常丰富

3
Visual Studio 2017的最新数据需要此工具6.28 GB。
拥抱

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

1
@mateuscb我对此进行了进一步的研究,是的,你是对的-它可以很好地避免完全安装,只需复制文件即可。有关完整的详细信息,请参阅我的答案。
Per Lundberg '18

46

如果你只是想SignTool真的希望尽量减少安装,这里是一个办法,我只是逆向工程我的方式:

  1. .isohttps://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk下载文件(当前下载链接为http://go.microsoft.com/fwlink/p/?LinkID=2022797.exe下载将不起作用,因为它是一个在线安装程序,在运行时会降低其依赖性。
  2. .iso使用7-zip之类的工具打开的包装
  3. 安装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(替换x64x86arm或者arm64如果你需要它的另一个CPU架构。)


signtool.exe如果要在CI场景中使用它,也可以将其他文件夹中的文件和其他文件提交 到版本控制存储库中。我已经尝试过了,它似乎工作正常。

(可能不需要所有文件,因为.exe此文件夹中还有一些其他工具可能负责这些依赖关系,但是我不确定可以删除哪些工具以使文件集更小。其他人可以自由研究:)我试图只复制signtool.*而没有用,所以至少需要一些其他文件。)


1
实际上,这是安装signtool.exe所需要做的全部工作。
predi '18

很棒的建议。易于实现。感谢您解决并在此处发布您的解决方案。
RobertFrank

完善。我只需要签名工具。没有多余的绒毛。顺便说一句,右键单击.cab文件并选择install对我不起作用。我收到了错误The system cannot find the file specified.
frakman1

2
甚至更容易:安装.iso,然后运行“ Installers \ Windows SDK签名工具-x86_zh-cn”
Russell Phillips

@RussellPhillips是的,基本上是我上面所说的。在某些情况下,挂载起来.iso更容易,但在其他情况下,您可能希望获取二进制文件以及所有依赖项(例如signtool.exe,将您的朋友和朋友登录到git存储库中,并在AppVeyor,Jenkins等中签名构建)
Per Lundberg

22

现在是2019年:)对于任何想知道的人,在这里都可以找到它:

C:\Program Files (x86)\Windows Kits\10\App Certification Kit

屏幕截图:


在此处输入图片说明

编辑:2020年仍在同一地点。


Visual Studio 2019版本16.5.4。和Windows 10 SDK(10.0.18362.0)-这个答案对我来说是正确的。(两个版本均为撰写本文时的最新值
2020年

20

按照问题中的注释...在Windows 10上,Signtool.exe和其他SDK工具已移至“%programfiles(x86)%\ Windows Kits \”中

Windows 10上signtool的典型路径

  • 32位= “ c:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ x86 \ signtool.exe”
  • 64位= “ c:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ x64 \ signtool.exe”

SDK 8.0和8.1的工具也位于“ Windows Kits”文件夹中。


4
那没有回答问题。首先如何安装?我的系统上的那些文件夹中没有任何内容-即使安装了Visual Studio。
NickG '16

+1在Windows 10机器上工作-使用Visual Studio主安装程序,我必须安装Win 10 SDK(NOT 8.1),然后才有了SignTool.exe
Tino Mclaren


2

在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



1

如果您使用的是VS Express 2015,则只需转到控制面板->程序和功能->选择vs 2015->单击更改,然后在VS Express安装程序中选择“修改”->选择发布工具,并完成。安装完成更改后,您将可以创建安装程序。


谢谢。我正在竭尽全力尝试出版。
布拉克

1

您应该转到控制面板->程序和功能,找到Microsoft Visual Studio 2015并选择“更改”。Visual Studio 2015安装程序将启动。选择“修改”。

在Visual Studio组件列表中,打开子项列表,然后也选择“ ClickOnce发布工具”和“ Windows 10 SDK”。


0

我通过“控制面板”,“程序和功能”对Visual Studio进行了修改。该SDK最初并不明显,所以我安装了一些通用工具,其中包括SDK Update 3。


您是否遇到了问题中描述的问题,并且您描述的内容解决了该问题?请在您的回答中加以说明。最好的问候
YakovL

0

根据安装的位置,它在很多地方都可用:在我的盒子上,除了v6.0A SDK版本之外的每个地方都支持/ fd选项。

在此处输入图片说明



0

仅安装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代码段,因为那是我开始寻找解决方案的那一天。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.