Почему в моем подписанном однократном приложении написано, что у него есть неизвестный издатель
Я хочу создать приложение, которое легко установить. Процесс установки довольно сложен (множество разрешений, правила брандмауэра, сервисы и т. Д.). Поэтому я решил написать программу установки на C # (.net 4), а затем сделать саму программу установки однократной установкой.
Идея заключалась в том, чтобы пользователь заходил на веб-сайт, нажимал «Установить», моя программа установки была бы установлена на его компьютере одним щелчком мыши, а затем запускалась, настраивая основную программу.
Чтобы сделать это простым процессом, мне, очевидно, пришлось подписать все исполняемые файлы. Я купил сертификат для подписи кода Comodo, установил его в своем хранилище сертификатов и поставил галочку «Подписать манифесты после клика» в VS Express 2012. Я также включил в себя этап после сборки, который выполнялся
SIGNTOOL.EXE sign /f TrumphurstCodeCertificate.pfx /p <my password> TimeClockSetup.exe
Я удалил все из папки сборки и веб-сайта развертывания и запустил чистую сборку.
Я проверил свойства исполняемого файла в папке сборки, и он был показан как опубликованный мной.
Я опубликовал программу на веб-сайте, запустил, отредактировал другой компьютер с Windows 8, перешел на веб-сайт и нажал кнопку «Установить».
Мне подсказалиDo you want to run or save setup.exe
и выбранный прогон.
Тогда мне было предложеноsetup.exe is not commonly downloaded and could harm your computer
- Я нажал Действия, и он сказалThis program might harm your computer
, Он действительно сказал, что издатель - Trumphurst Ltd, и дал мне возможность в любом случае запустить, на что я нажал.
Тогда я получил"Open File - Security Warning", for ".....\TimeClockSetup.exe", "Publisher: Unknown Publisher"
.
Почему exe показал какUnknown publisher
?
Я просмотрел исполняемый файл в каталоге пользовательских данных, в котором он был установлен, и в диалоговом окне «Свойства» не отображалась вкладка «Цифровые подписи».
Тем не менее, если я перехожу к exe в моей папке сборки, он имеет подпись.
[Позже] Я помню, как где-то читал, что некоторые части процесса сборки или публикации используют exe-файл в папке obj, а не в выходной папке сборки, поэтому я добавил подпись к шагам посткомпоновки - это не имело никакого значения.