В настоящее время я подписываю свой манифест и исполняемый файл, используя сертификат в хранилище (на моем CI-сервере).Как мы знаем, он использует поле «ManifestCertificateThumbprint», чтобы найти файл сертификата и подписывает, используя этот сертификат.
Проблема в том, что если я хочу построить свой проект на тех компьютерах, на которых нет доступных сертификатов (например, на компьютере разработчика или виртуальной команде аутсорсинга), он завершается ошибкой: Невозможно найти сертификат подписи манифеста.в хранилище сертификатов. , что очевидно.
Я надеюсь на решение, в котором я просто хочу пропустить (без подписи) манифесты, если сертификат не доступен в хранилище в скрипте сборки.
TL / DR:
- Мы могли бы легко проверить подписываемый исполняемый файл (проверив вкладку « Цифровая подпись » для project.exe из свойств файла) и подписав манифест (проверив наличие «* 1014»).* publisherIdentity"запись в файле манифеста / xml).
- Мы отметили / включили обе следующие опции в моем проекте:
- Безопасность -> «Включить настройки безопасности Clickonce» (подписывает exe)
- Подписание -> «ПодписатьМанифест Clickonce "(подписывает приложение, манифест развертывания)
- Отключение подписания манифеста для разработчиков и тестовых виртуальных машин не повредит, поскольку наш сервер CI (Jenkins) имеет сертификат и будетпроизводить подписанные манифесты при строительстве.