Как установить SignTool.exe для Windows 10


94

Как установить SignTool.exe в Visual Studio 2015 для Windown 10? Я попытался собрать свой проект, но программа выдала ошибку:

Ошибка Произошла ошибка при подписании: SignTool.exe не найден.


попробуйте заглянуть в% programfiles (x86)% \ Microsoft SDKs \ Windows \ v7.0A \ Bin, если инструмент существует. См. Blogs.msdn.com/b/vsnetsetup/archive/2013/11/18/… .
jtabuloc

@JrTabuloc Я использую VS 2015, и у меня нет signtool.exe в% programfiles (x86)% \ Microsoft SDKs \ Windows \ v7.0A \ Bin
Loint

4
Windows 10 WDK по умолчанию устанавливается по пути «% ProgramFiles (x86)% \ Windows Kits \ 10». Попробуйте заглянуть в "% ProgramFiles (x86)% \ Windows Kits \ 10 \ bin \ x86", если инструмент существует.
гал

Также вы можете попробовать использовать пути «% WindowsSdkDir% \ bin \ x86» или «% WindowsSdkDir% \ bin \ x64». Если у вас нет переменной среды "% WindowsSdkDir%" в оболочке командной строки, вы можете вызвать для нее что-то вроде "% VS140COMNTOOLS% .. \ .. \ vc \ vcvarsall.bat".
Hal

@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
выдало

Ответы:


120

Вам необходимо установить Windows 10 SDK.

  1. Visual Studio 2015 с обновлением 1 уже содержит его, но не установлен по умолчанию. Вам следует перейти в Панель управления -> Программы и компоненты, найти Microsoft Visual Studio 2015 и выбрать «Изменить».

Начнется установка Visual Studio 2015. Выберите «Изменить».

В списке компонентов Visual Studio найдите «Универсальные средства разработки приложений для Windows», откройте список подпунктов и выберите «Windows 10 SDK (10.0.10240)».

Windows 10 SDK в VS 2015 Update 1 Setup

  1. Конечно, вы можете установить Windows 10 SDK прямо из Microsoft: https://go.microsoft.com/fwlink/?LinkID=698771

Как уже писал josant - по окончании установки вы найдете SignTool.exe в папках:

  • x86 -> c: \ Program Files (x86) \ Комплекты Windows \ 10 \ bin \ x86
  • x64 -> c: \ Program Files (x86) \ Комплекты Windows \ 10 \ bin \ x64 \

27
Как бы то ни было, если все, что вам нужно, это signtool.exe, в установщике From SDK 10 единственная функция, которую вам нужно включить, - это Windows Software Development Kit, которая сэкономит вам около 400 МБ. Немного, но кое-что.
mateuscb

3
@Steve Добро пожаловать в чудесный мир разработки для Windows, где раздувание - это особенность,
gillonba

3
По последним данным на сегодняшний день для Visual Studio 2017 для этого инструмента требуется 6,28 ГБ.
hughes

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 Я посмотрел немного дальше и да, вы правы - он отлично работает, чтобы вообще избежать установки и просто скопировать файлы. См. Мой ответ ниже в этом вопросе для получения полной информации.
Пер Лундберг,

46

Если вам нужен только SignTool и вы действительно хотите минимизировать установку, вот способ, который я только что перепроектировал:

  1. Загрузите .isoфайл с https://developer.microsoft.com/en-us/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 КБ. Для справки, он извлекает свои файлы из следующих .cabфайлов, поэтому они также необходимы для автономной установки:
    • 4c3ef4b2b1dc72149f979f4243d2accf.cab (339 КБ)
    • 685f3d4691f444bc382762d603a99afc.cab (1002 КБ)
    • e5c4b31ff9997ac5603f4f28cd7df602.cab (389 КБ)
    • e98fa5eb5fee6ce17a7a69d585870b7c.cab (1,2 МБ)

Итак, теперь у вас будет signtool.exeфайл и компаньоны C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64(замените x64на x86, armили, arm64если вам это нужно для другой архитектуры процессора).


Также можно зафиксировать signtool.exeи другие файлы из этой папки в репозиторий управления версиями, если вы хотите использовать его, например, в сценариях CI. Я пробовал, и вроде работает нормально.

( Все файлы, вероятно, не нужны, поскольку .exeв этой папке также есть некоторые другие инструменты, которые могут нести ответственность за эти зависимости, но я не уверен, какие из них можно удалить, чтобы уменьшить набор файлов. Кто-то другой может исследовать дальше в этой области. :) Я попытался просто скопировать signtool.*, но это не сработало, поэтому по крайней мере некоторые другие файлы необходимы.)


1
Это действительно все, что вам нужно сделать, чтобы установить signtool.exe.
predi 05

Отличное предложение. Легко реализовать. Спасибо, что разобрались и разместили здесь свое решение.
RobertFrank

Отлично. Мне просто нужен был сигнтул. Никакой лишней ерунды. Кстати, щелчок правой кнопкой мыши по файлам .cab и выбор installу меня не работал. У меня ошибкаThe system cannot find the file specified.
frakman1

2
Еще проще: смонтируйте .iso, затем запустите «Installers \ Windows SDK Signing Tools-x86_en-us»
Рассел Филлипс

@RussellPhillips Да, это в основном то, что я сказал выше. В некоторых случаях монтировать .isoпроще, но для других вы можете захотеть захватить двоичный файл вместе со всеми зависимостями (например, для регистрации signtool.exeи друзей в репозиторий git и подписания сборок в AppVeyor, Jenkins и т. Д.)
Per Lundberg,

23

Сейчас 2019 год :) Для тех, кому интересно, вот где вы его найдете:

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

Снимок экрана:


введите описание изображения здесь

Изменить: все еще на том же месте в 2020 году.


Visual Studio 2019 v.16.5.4. и Windows 10 SDK (10.0.18362.0) - этот ответ для меня правильный. (обе версии самые свежие на момент написания - 29.04.2020)
Derptastic

20

Согласно комментариям в вопросе ... В Windows 10 Signtool.exe и другие инструменты SDK были перемещены в "% programfiles (x86)% \ Windows Kits \" .

Типичный путь к signtool в Windows 10.

  • 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».


4
Это не отвечает на вопрос. Как вы его устанавливаете в первую очередь? В моей системе в этих папках ничего нет - даже с установленной Visual Studio.
NickG

+1 Работал здесь на Windows 10 box - Используя основной установщик Visual Studio, мне пришлось установить Win 10 SDK (НЕ 8.1), затем у меня был SignTool.exe
Тино Макларен


2

В 2019 году это совсем недавняя ссылка от Microsoft о том, как получить этот инструмент:

Инструмент SignTool - это инструмент командной строки, который подписывает файлы цифровой подписью, проверяет подписи в файлах или отмечает файлы времени. Для получения информации о том, почему подписывание файлов важно, см. Введение в подписывание кода. Инструмент устанавливается в папку \ Bin установочного пути Microsoft Windows Software Development Kit (SDK).

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/en-us/windows/win32/seccrypto/signtool



1

Если вы используете VS Express 2015, просто зайдите в панель управления -> программы и функции -> выберите vs 2015 -> щелкните изменить, затем в установщике VS Express выберите «Изменить» -> выберите инструменты публикации, и закончить. После того, как установка завершится, вы сможете создать свой установщик.


Спасибо. Я ломал себе голову, пытаясь опубликовать.
Brack

1

Вам следует перейти в Панель управления -> Программы и компоненты, найти Microsoft Visual Studio 2015 и выбрать «Изменить». Начнется установка Visual Studio 2015. Выберите «Изменить».

В списке компонентов Visual Studio откройте список подпунктов и выберите «Инструменты публикации ClickOnce» и «Windows 10 SDK».


0

Я внес изменения в Visual Studio из панели управления, программ и компонентов. SDK сначала не был очевиден, поэтому я установил Common Tools, который, черт возьми, действительно включал SDK Update 3.


Сталкивались ли вы с проблемой, описанной в вопросе, и помогли ли вы ее решить? Пожалуйста, поясните это в своем ответе. С уважением
ЯковЛ

0

Он доступен во многих-многих местах, в зависимости от того, что установлено: на моем компьютере все, кроме версии SDK v6.0A, поддерживают параметр / fd.

введите описание изображения здесь


0

SignTool доступен как часть Windows SDK (который входит в состав Visual Studio Community 2015 ). Обязательно выберите « ClickOnce Publishing Tools » из списка функций во время установки Visual Studio 2015, чтобы получить SignTool.

Инструменты публикации ClickOnce

После установки Visual Studio вы можете запустить signtoolкоманду из командной строки Visual Studio. .

По умолчанию (в Windows 10) SignTool будет установлен в:

  • C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe

0

для установки только инструментов подписи из файла winsdksetup.exe (доступного по тому же URL-адресу, что и для Windows sdk iso, упомянутого выше), это вариант, прямо из файла Docker, в котором я работаю: 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, так как именно с него я начал свой день в поисках решения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.