Я работаю над приложением ClickOnce, которое теперь хочу подписать с сертификатом, который я получил от Comodo, исключительно для того, чтобы избежать предупреждения «Неизвестного издателя» (а теперь и запрета SmartScreen), когда пользователи его устанавливают.Почему я не могу подписать ссылку на dll, подписав сборку exe post?
Мне удалось подписать манифест ClickOnce по адресу Проект -> Подписание -> Подписать манифест ClickOnce в Visual Studio. Но не удалось подписать сборку, установив флажок . Подпишите сборку с помощью моего сертификата Comodo из-за нескольких ошибок. Затем я протестировал его с помощью тестового сертификата, сгенерированного Visual Studio, и я получил сообщение об ошибке «Сборка сборки не удалась. Ссылочная сборка« blah.dll »не имеет сильного имени«. По-видимому, даже если бы я смог подписать мою сборку с моим фактическим сертификатом, мне тоже нужно будет подписать dll.
Затем я прочитал here, что вы можете подписать свои сборки, введя что-то вроде этого в командной строке пост-сборки: "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe" sign /f "$(ProjectDir)actual_cert.pfx" /p password /v "$(ProjectDir)obj\x86\$(ConfigurationName)\$(TargetFileName)"
. Который избавился от не подписанной ссылки dll ошибка тоже.
Я опубликовал свое приложение в тестовом месте, и все 3 (или 2?) Окна предупреждений показали мое имя в качестве издателя (я понимаю, что пользователям потребуется несколько раз установить мое приложение, чтобы избавиться от вещи SmartScreen). Так что все было в порядке. Именно это меня беспокоит, поскольку DLL не подписана.
Это взлом, который в конечном итоге обернется на меня? Будет ли SmartScreen никогда не уходить даже после того, как пользователи будут устанавливать мое приложение несколько раз, потому что у dll нет сильного имени? Или все будет в порядке? И если да, почему бы Visual Studio не использовать dll без знака, если это действительно возможно.
Я только беспокоился о подписании Authenticode с помощью signtool, а не с одним щелчком мыши. В каких файлах вы пытаетесь использовать signtool? Не подписывает правильную подпись вашей библиотеки DLL? Пока я подписываю свои DLL, я замечаю, что только на .exe я не подписал, что браузеры вызывают предупреждение при загрузке файла, или Windows показывает предупреждение об Неизвестном издателе. Не подписывание Dll не влияет на появление этих предупреждений. –
Да, мне кажется, что он отображает только предупреждение для EXE, а не ссылки на DLL. Но мне любопытно, [как любой программист] (http://imgur.com/l3aFizL), о том, почему Visual Studio не позволит вам ссылаться на неподписанные DLL, когда это можно сделать, если я подпишу его после сборки, используя SignTool. Мне почему-то нечего делать. – Juan
Я не очень хорошо знаком с подписью сборок в VS, потому что я использую signtool в первую очередь для подписания моих C++ exe и DLL.Но, похоже, проблема в том, что вы не можете подписывать DLL, потому что она не имеет сильного имени? Если вы сделали его сильным, то он работает? –