Важной недостающая часть ответа упоминая Signtool является:
Да, с хорошо известным signtool.exe вы также может узнать, если файл подписан. Не нужно загружать другой инструмент!
E.g. с простой линии:
signtool verify /pa myfile.exe
if %ERRORLEVEL% GEQ 1 echo This file is not signed.
(Для многословным из пут, добавить '/ V' после '/' ра.)
Можно спросить: почему это важно? Я просто подписываю файлы (снова), которые должны быть подписаны, и он работает.
Моя цель состоит в том, чтобы сохранить сборки чистыми и не подписывать файлы во второй раз, потому что не только дата изменяется, но и после нее двоичная.
Бизнес-пример: У моего клиента есть оптимизированный процесс создания и создания сообщений «dev ops». Существует множество источников для разных наборов файлов, и в конце все они строятся, протестированы и объединены в дистрибутив, и для этого необходимо подписать некоторые файлы. Чтобы гарантировать, что некоторые файлы не покидают устройство без подписания, мы подписали все важные файлы, даже если они уже были подписаны.
Но это не достаточно чистый:
1) Если мы подпишем еще раз файл, который уже подписан, дату файла и бинарные изменения отпечатков пальцев, а файл теряет сопоставимость с его источниками, если это просто скопировано. (По крайней мере, если вы подписываетесь с отметкой времени, которую мы всегда делаем, и я думаю, что это рекомендуется.)
Это серьезная потеря качества, потому что этот файл больше не сопоставим с его предшественниками из другого источника файла.
2) Если мы снова подпишем файл, это также может быть ошибкой, и это файл сторонних разработчиков, который не должен подписываться вашим устройством.
Вы можете избежать обоих, сделав условие подписания условным в зависимости от кода возврата предыдущего упомянутого вызова «signtool verify».
Не могли бы вы указать язык в вашем вопросе, или состояние, которое вы не возражаете. Это облегчит ответ. Благодарю. –
Почему вы используете 2 аккаунта с именем Vinzz ??? –
... и спрашивая точно такой же вопрос ??? –