Как подписать установщик для предотвращения предупреждения Vista UAC

У меня есть приложение, которое мне нужно распространять и хочу подписать, чтобы я мог избежать предупреждений UAC в Vista. В настоящее время я вижу это...

UAC http://img694.imageshack.us/img694/7289/uac.jpg

Я использую визуальную студию для создания установщика, но приложение не было написано в .net. Мне нужно подписать как .msi, так и .exe, содержащиеся в .msi? Какой ключ мне нужен, и где я должен его получить? В настоящее время я думаю о verisign, хотя они дороги, мне нужно, чтобы это можно было доверять. Как только я получу ключ, как мне подписать? Если я правильно понял al.exe и signtool.exe для сборки .net правильно? Спасибо!

Ответы

Ответ 1

Этот конкретный диалог является самым страшным. Там менее страшный, если приложение подписано, но не подписано. (Т.е. он только подписан вами). Чтобы полностью обойти его, вам действительно нужна подпись.

В Windows содержится список доверенных корневых центров сертификации (MMC.EXE > Добавить оснастку > Сертификаты > Учетная запись компьютера). Некоторые из них предназначены для "Подписи кода", что означает, что эти центры сертификации могут противостоять подписи вашей подписи. Verisign находится в этом списке. Если вы работаете в корпоративном Интернете, подпись и подпись компаний могут быть и там.

В любом случае, как только у вас есть скрепленный сертификат, вы действительно используете signtool для подписи как своего приложения, так и его установщика. Подписание собственного приложения - это хорошая практика и много помогает в управлении конфигурацией. Signtool имеет графический интерфейс, но также может использоваться в режиме CLI. Последнее полезно, когда вы хотите, чтобы процесс сборки запрашивал ключ один раз, а затем создавал все до установщика. (Не печатайте пароль для своего корпоративного сертификата в свой процесс сборки!).

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