Неизвестный издатель по-прежнему отображается в корректно подписанном надстройке VSTO, созданной с использованием VS2010
У меня есть OneClick Deployed VSTO Addin, который я подписал с помощью актуального сертификата подписи кода Verisign (PFX). Я проверил, что я правильно подписываюсь с поддержкой Verisign по телефону - они согласны. Я строю с VS2010. Тем не менее, надстройка показывает "неизвестный издатель", когда я пытаюсь установить.
Зачем?
Как заменить "Неизвестный издатель" именем издателя в сертификате PFX?
Вот что я сделал, чтобы попытаться решить проблему на сегодняшний день:
Нашел этот вопрос о проблеме "Неизвестный издатель" на Addins. В принятом ответе на этот вопрос обсуждается использование
mage.exe
подписать развертывание и манифесты приложения.я использовал
mage.exe
применять подпись PFX к манифестам приложения и развертывания безрезультатно; "Неизвестный издатель" по-прежнему отображается при установке надстройки. Только тогда я увидел комментарий менеджера программы MS на странице последней ссылки, которую VSTO Addin, созданная в 2008 году или ранее, не читает ни манифест приложения, ни развертывание.Затем я увидел комментарий того же менеджера программы MS, который ссылался на эту страницу и утверждал, что начиная с VS2010, что VSTO Addin's с Publisher, указанным как указано на связанной странице, теперь будут читать свои манифесты и правильное имя Publisher, отображаемое при установке Addin.
Я сделал все это, и издатель в моем правильно подписанном развертывании OneClick все еще показывает "Неизвестный издатель" - почему?
1 ответ
Установите сертификат на свой локальный компьютер. В проводнике Windows щелкните правой кнопкой мыши файл сертификата, выберите " Установить PFX" и следуйте инструкциям.
Убедитесь, что манифест и сборка проекта VSTO подписаны. В свойствах проекта VSTO на вкладке "Подписание" необходимо отметить "Подписать манифесты ClickOnce" (если нет, выберите файл PFX). "Подписать сборку" также следует проверить и использовать тот же файл PFX.
После публикации VSTO вам нужно будет подписать манифест и опубликованные файлы.vsto из командной строки. Вам также нужно будет скопировать.dll из корзины в опубликованную папку, прежде чем запускать mage.exe (чтобы избежать ошибок "Файл не найден"). Следуйте синтаксису ниже, и я настоятельно рекомендую подписать оба.vsto ради безопасности.
,
set AppPublishPath=bin\Release\app.publish
set AppPublishVersionPath=bin\Release\app.publish\Application Files\MyProjectName_1_0_0_0
set CertificatePath=C:\SignedCertificate.pfx
set CertificatePassword=password
copy bin\*.dll "%AppPublishVersionPath%"
mage -update "%AppPublishVersionPath%\MyProjectName.dll.manifest" -certfile "%CertificatePath%" -Password %CertificatePassword%
mage -update "%AppPublishVersionPath%\MyProjectName.vsto" -appmanifest "%AppPublishVersionPath%\MyProjectName.dll.manifest" -certfile "%CertificatePath%" -Password %CertificatePassword%
mage -update "%AppPublishPath%\MyProjectName.vsto" -appmanifest "%AppPublishVersionPath%\MyProjectName.dll.manifest" -certfile "%CertificatePath%" -Password %CertificatePassword%
(Извините, если синтаксис не на месте. Я скопировал его из собственной базы кода и изменил для простоты.)