Подписание.Net кода с Verisign
Я не уверен, почему они не могут упростить процесс подписания кода. Кажется, что каждый раз, когда выходит релиз, требуется день или больше, чтобы понять. Мы используем Verisign и имеем текущий файл pfx.
У меня есть приложение, которое запускается от имени администратора, поэтому мне нужно подписать как приложение, так и установщик. Мне удалось сделать это один раз несколько месяцев назад и выпустить. В этом выпуске я решил упростить процесс и настроить Visual Studios на автоматическую подпись необходимых файлов, используя Свойства -> Подписывание для каждого проекта. Затем я запустил свой скрипт при сборке установщика как PostBuildEvent, чтобы подписать это.
Я думал, что все идет хорошо, так как установщик дал название компании. Однако, когда я запустил приложение, в UAC отображалось "Неизвестно". Я решил вернуться к тому, что делал раньше, собирая, подписывая файлы, собирая установщик и, наконец, подписывая его. Это сработало три месяца назад, но теперь я все еще вижу проблему "Неизвестно" во всплывающем окне UAC.
Я не добавил никаких новых классов в решение, поэтому мои сценарии подписи должны быть действительными. Я не могу понять, что я могу делать неправильно. Есть ли хорошая документация о том, как подписать с Verisign или простые правила, которые должны соблюдаться? Похоже звонит signtool.exe sign /f "Verisign.2012.pfx" /p myPassword "C:\...\Installer.msi"
на всех.exe и.dll файлах после сборки, затем создания установщика и вызова того же самого файла.exe и.msi должны убедиться, что все подписано, и я не должен видеть "Неизвестно".
Есть ли кто-нибудь с большим опытом, чем я (я уверен, что несколько), кто может увидеть зияющую дыру в моем понимании и направить меня на правильный путь? Спасибо.
1 ответ
Я определил, что я делал неправильно. Я строил проект, а затем подписывал его. После этого я собрал установщик и подписал его. Однако, проведя некоторое тестирование, я обнаружил, что сборка установщика убирает цифровую подпись из моих файлов.
Правильный способ подписи VeriSign в проекте VS - не создавать установщик, который использует выходные данные проекта. Вместо этого вручную выберите и добавьте файлы в свой установщик. После этого вам нужно будет добавить событие после сборки (свойства -> События сборки -> Командная строка события после сборки), которое будет подписывать выходные данные каждого проекта.
Спасибо тем, кто предложил решения.