Визуальная студийная подпись не удалась (ошибка signtool.exe) - PullRequest
9 голосов
/ 29 февраля 2020

Приняв небольшое обновление Windows сегодня днем, я обнаружил, что больше не могу делать подписанные сборки моего приложения Visual Studio.

В поисках проблемы я наткнулся на программу signtool.exe который находится в неясном каталоге (C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ 10.0.18362.0 \ x64). Используя командную строку, я попытался запустить ее вручную, чтобы подписать свое приложение, но когда я это сделал, ничего не произошло: ни вывода, ни сообщения об ошибке. Я также попытался запустить его без параметров, ожидающих сообщения справки или хотя бы ошибки, но опять же ничего.

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

Думая, что на первом компьютере у меня был поврежденный файл .exe, я скопировал версию с другого компьютера, но все равно не получилось. Однако, если я переименую файл, он запустится. Например, если я переименую его в «signtool1.exe», я смогу запустить его из командной строки очень хорошо, хотя Visual Studio все равно не сможет запустить его из-за изменения имени.

Я попытался перезагрузить свой Компьютер несколько раз во время этого процесса думал, что, возможно, его копия застряла в памяти, но ее нет. Я также искал это в диспетчере задач.

Я никогда не видел ничего подобного раньше. Эта же программа запускается или ничего не делает в зависимости от имени исполняемого файла. Еще одна деталь: он запускается независимо от имени файла, если я копирую его в свой домашний каталог. Что может вызвать такую ​​вещь?

Спасибо, Фрэнк

Ответы [ 3 ]

11 голосов
/ 01 марта 2020

Вместо переименования signtool.exe я обнаружил, что переименование / удаление signtool.exe.manifest позволяет запускать signtool, в то же время позволяя запускать его в Visual Studio.

Я не знаю, почему это происходит, или каковы побочные эффекты удаления манифеста, но этого достаточно для моего проекта для повторной сборки.

Для справки, я столкнулся с этой проблемой после выполнения чистой установки VS2019 на чистой Windows 10 1909 ВМ (но полностью обновлено вскоре после).

7 голосов
/ 02 марта 2020

Я вижу ту же проблему. Signtool не отображает никаких диалогов об ошибках, но возвращается код ошибки -1073741502 (0xC0000142), STATUS_DLL_INIT_FAILED.

Проблема может быть связана с обновлением KB4535996. Я удалил обновление, когда увидел проблему, и signtool работал нормально. Проблема вернулась, когда я переустановил обновление.

Signtool работает, если я переместил файл манифеста из каталога, как вы видели. Но я также заметил, что signtool работает, когда я перемещаю манифест обратно в каталог.

2 голосов
/ 03 марта 2020

Вот Отчет об ошибке в Windows Feedback Hub. Пожалуйста, отправьте сообщение об ошибке KB4535996.

...