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

102

Пока я пытался обновить свой проект, который я делал, я впервые увидел ошибку:

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

Я никогда не видел этого раньше, поэтому я обнаружил, что SignTool.exe - это то, что подписывает мой проект для развертывания ClickOnce.

Я также читал, что это часть Windows SDK, но когда я поискал, где находится SignTool.exe, я сразу увидел его!

  C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

Я не видел проблем, и я всегда публиковал свой проект все время - у меня версия 68. Но я впервые вижу это - я не касался никаких опций, которые могли бы это сделать.

Любая помощь?

Alex
источник
У вас есть несколько версий Visual Studio на вашем компьютере и вы недавно запускали несколько разных версий?
sll
Я использую предварительную версию для разработчиков Windows, не так ли?
Alex

Ответы:

7

Теперь попробуйте опубликовать приложение ClickOnce. Если вы по-прежнему обнаружите ту же проблему, проверьте, установлена ​​ли в системе предварительная версия Microsoft .NET Framework 4.5 Developer Preview. Microsoft .NET Framework 4.5 Developer Preview - это предварительная версия .NET Framework, и ее не следует использовать в производственных сценариях. Это обновление .NET Framework 4. Вам необходимо удалить этот предварительный выпуск продукта из ARP.

https://blogs.msdn.microsoft.com/vsnetsetup/2013/11/18/an-error-occurred- while-signing-signtool-exe-not-found/

Наконец, вы можете захотеть установить предварительную версию для клиентов вместо предварительной версии для разработчиков.

Мика Армантроут
источник
2
Обновлено новой версией
Micah Armantrout
2
Правильный ответ der_meister и Alex
Erygin
1
устаревший ответ
T.Todua
193

Инструменты публикации ClickOnce не устанавливаются как часть стандартных параметров установки. Поэтому вам нужно установить его в расширенном режиме. Установка ClickOnce

Это диалоговое окно можно найти в Windows 7, выбрав Панель управления> Удалить программу , щелкнув правой кнопкой мыши Microsoft Visual Studio Professional 2015 и выбрав Change. Откроется диалоговое окно Visual Studio. Выберите Modifyиз набора кнопок внизу, и появится диалоговое окно выше.

Алексей Ерыгин
источник
7
Да, у меня это сработало в Windows10. В панели управления я обновил установку, включив в нее инструменты публикации CickOnce, и это сработало! Спасибо.
Nuno Nogueira
25
Это правильный ответ для людей, у которых возникают проблемы с этим в Visual Studio 2015.
Джаксидиан,
3
Версия командной строки: . «C: \ ProgramData \ Package Cache \ {90ac7cb6-f7f2-49d1-aa5d-d159d8e86e19} \ vs_professional.exe» / InstallSelectableItems ClickOnceV1 / S
stefan.seeland 02
60

Пожалуйста, нажмите «Один раз приложение» -> «Свойства» -> «Подписание» -> снимите флажок «Подписать манифесты ClickOnce».

Проблема будет решена.

Примечание. Имейте в виду, что это решение снимает защиту с вашего проекта. Прежде чем делать это, обратитесь за помощью к более образованному коллеге.

Виньеш
источник
31
Это очень плохое решение.
Алекс Ерыгин
1
Я очень опытный программист на Java и Python. Мне нужно было скомпилировать проект C # в VS2015 для собственного использования. Это единственное решение, которое я смог понять (с помощью Google) на этой странице.
chiffa
4
Это не решение - есть причина, по которой программы ClickOnce подписаны: это функция безопасности, а не то, что нужно раздражать разработчиков,
Брондал
5
Этот ответ относится к «игнорировать безопасность и помогать моим пользователям заразиться». Это НЕ должно быть вашим решением. Если вам не нужно подписывать установщик, вам следует удалить настройки установщика / публикации вместо отключения безопасности !!
Джаксидиан
5
Это хорошее решение, поскольку я просто пишу небольшой инструмент для личного использования. Думаю, это должно быть: «Щелкните правой кнопкой мыши свой проект - Свойства - Подписание - Снимите флажок Подписать манифест ClickOne». Сначала я не знаю, как «Пожалуйста, нажмите один раз приложение», его путают с инструментами ClickOnce: D
Куан Нгуен
23

SignTool перемещен в другое место в последнем SDK: C:\Program Files (x86)\Windows Kits\8.1\bin\x86

Необходимо установить ClickOnce Publishing Tools во время установки Visual Studio 2015.

Вы можете повторно запустить установку из раздела «Программы и компоненты»; найдите Visual Studio в списке и нажмите «Изменить».

Der_Meister
источник
Я использую windows 10, нигде не могу найти SignTool. Я должен снять флажок «Подписывать манифесты ClickOne», чтобы избежать этой ошибки.
witoong623,
1
Я использую Windows 10 и Visual Studio 2015 Community Edition. SignTool был установлен, когда я добавил пакет ClickOnce Publishing Tools в установку VS.
Der_Meister
@Der_Meister Вы что-нибудь успешно опубликовали?
ralphgabb
1
Это правильный ответ - разочарование тем, что «Не подписывать» и «переустанавливать .NET» выше :(
Brondahl
1
В случае, если это не очевидно для кого-либо, повторный запуск установщика позволит вам добавить дополнительные функции к вашей установке VS - это становится очень ясно, когда она открывается.
Brondahl
19

Вы можете исправить это, нажав на установочное приложение VS. Затем нажмите Modify> Mark ClickOnce App и обновите VS. Также я думаю, что @Alex Erygin прав. Плохое решение для приложения Click Once -> Свойства -> Подписание -> Снимите флажок Подписать манифесты ClickOnce. Это не выход. Это только обошло проблему.

Стоян Петков
источник
4
обошли вокруг
behelit
11

Это простое решение. Откройте проект, в котором возникает эта ошибка. Нажмите "Проект" вверху. Затем нажмите «Свойства» (будет имя открытого проекта), затем нажмите «Безопасность», затем снимите флажок «Включить параметры безопасности ClickOnce».

Это должно все исправить.

Джо Смит
источник
Ваше исправление сработало в нашей среде, где код распределяется между разработчиками, использующими SVN
Кристофер Бонитц,
1
Не работает, но при нажатии на «Подписание» -> «Не отмечено» [Подписать манифесты ClickOnce] теперь работает ...
Monzur
Быстрая починка. Спасибо!
user3772108 05
«Это должно исправить все» - кроме обеспечения безопасности
MickyD
9

Нажмите "Проект" вверху. Затем нажмите «Свойства» -> Подписание -> Не отмечено [Подписать манифесты ClickOnce] теперь работает

Монзур
источник
7

Ни в одном из приведенных выше ответов не говорится об отключении ClickOnce. В моей ситуации я никогда не использовал ClickOnce для своих приложений, но после обновления до VS 2015 он был внезапно включен, и при попытке компиляции я получил ошибку «SignTool.exe не найден».

Чтобы отключить, зайдите в свойства вашего проекта (щелкните правой кнопкой мыши) и выберите Security | Снимите флажок Включить параметры безопасности ClickOnce .

Вы можете оставить манифест отмеченным на вкладке «Подписывание», поскольку ему нечего подписывать, если он отключен.

Я подтвердил, что снятие флажка безопасности разрешило ошибку компиляции в моих проектах.

Jjmboni
источник
у вас включена публикация clickonce, все, что вы сделали, это сняли безопасность.
Микки Перлштейн,
2

Мне нужна была подпись, поэтому я не мог снять галочку, как было предложено.

Затем перейдите в Панель управления -> Программы и компоненты -> Microsoft Visual Studio 2015 Нажмите «Изменить», после чего загрузится установщик, и вам нужно нажать «Изменить», чтобы добавить функцию ClickOnce Publishing Tools.

Картик
источник
1

У меня была аналогичная проблема. По какой-то причине в свойствах проекта -> Подписание -> Подписать манифесты ClickOnce был включен.

Я снял отметку, и проблема исчезла.

Чанд
источник
1

Пользователи Windows 10 могут найти signtool.exeв C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64папке ( 10.0.18362.0в моем случае или другой версии).


Но сначала убедитесь, что вы установили Windows 10 SDK.

Затем проверьте Windows SDK Signing Tools for Desktop Appsустановку Control Panel > Programs > Programs and Features, выбрав Windows Software Development Kit - Windows 10.0.18362.1 (в моем случае ваша версия может быть другой), щелкните правой кнопкой мыши, выберите Change, выберите параметры, Changeзатем щелкните Next.

Тан Ле
источник
1

У меня было такое же сообщение о проблеме / ошибке сразу после обновления Visual Studio Pro 2019 V16.6.0. Решение заключалось в том, чтобы убедиться, что сертификат подписи действителен, так как у меня истек день.

Просмотрите свойства и подпишите, чтобы ввести действительный или временный сертификат. Чтобы сохранить имя файла таким же, как и раньше, снимите щелчок с защиты, как указано выше, а затем удалите файл ключа, связанный с программой.

Создайте новый файл ключа, а затем снова добавьте безопасность.

Джеймс
источник
0

После обновления инструментов сборки в агенте сборки DevOps до Visual Studio 2019 мы начали получать следующую ошибку для этапа 64-разрядной сборки приложения WPF.

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Current \ Bin \ amd64 \ Microsoft.Common.CurrentVersion.targets (3975,5): ошибка MSB3482: произошла ошибка при подписании: SignTool.exe не был найден на пути

Я попробовал все приведенные выше ответы, кроме тех, которые отключили подпись или безопасность подписи, и ничего не помогло.

Отключен шаг MSBUILD по умолчанию введите описание изображения здесь

Добавлен шаг командной строки введите описание изображения здесь

Путь: «C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Current \ Bin \ MsBuild.exe»

Примечание . Удален amd64 из указанного выше пути.

Это все еще обходной путь. Я надеюсь, что Microsoft исправит это в следующем выпуске.

Sundeep
источник