Почему в моем надстройке Excel появляется сообщение «Невозможно найти сертификат подписи манифеста в хранилище сертификатов»?

216

У меня есть проект надстройки для Excel, который был создан пару лет назад в Visual Studio 2008. В него должны быть внесены некоторые изменения, поэтому я обновился до Visual Studio 2010 (единственная среда разработки, которую я могу использовать). Не уверен, если это вызывает проблему, но это справочная информация.

Когда я проверяю код и компилирую его, я получаю сообщение об ошибке: «Ошибка 1 Не удается найти сертификат подписи манифеста в хранилище сертификатов».

Может кто-нибудь сказать мне, что это значит и как это исправить?

Энди Парсонс
источник

Ответы:

250

Вам необходимо повторно добавить этот сертификат на свой компьютер или выбрать другой сертификат.

Чтобы выбрать другой сертификат или создать его заново, перейдите на страницу свойств проекта, щелкните вкладку «Подписание» и либо

  • Нажмите на Выбрать из магазина
  • Нажмите на Выбрать из файла
  • Нажмите на Создать тестовый сертификат

После того, как все это будет сделано, вы сможете построить его снова.

Сатьяджит Бхат
источник
134
В этом разделе Project's properties pageвы можете Signing tabснять флажок «Подписывать манифесты ClickOnce».
Рубенс Мариуццо
10
@RubensMariuzzo - нет, если вы действительно хотите подписать его
Мэтт Вилко
Снятие отметки невозможно для надстроек Office и будет проверено снова.
it3xl
1
Как выполнить операцию «Создать тестовый сертификат» на сервере сборки?
ryanwebjackson
138

Я нашел это решение, которое решило проблему для меня: удаление всех записей в вашей, *.csprojкоторые попадают в:

<manifestcertificatethumbprint>...</manifestcertificatethumbprint>
<manifestkeyfile>...</manifestkeyfile>
<generatemanifests>...</generatemanifests>
<signmanifests>...</signmanifests>
Wernight
источник
1
Это необходимо, когда тогда приложение раньше было ClickOnce, но больше не (флажок выделен серым на вкладке «Подпись»)
Дэн Бешард
1
тоже работал на меня. по-видимому, в файле проекта были некоторые остатки некоторых экспериментов, которые мы провели на нем, которые нужно было очистить вручную. Кстати, мне также пришлось удалить файл .snk из проекта. так для меня это было: удалить .snk, отключить подпись, отредактировать файл проекта, перезагрузить проект и включить подпись.
Ош
По-видимому, необходимо, если вы когда-либо проверяли ClickOnce, а затем переключались на Sign Assembly.
Роланд
1
Это лучший ответ.
Хомам
3
Снятие отметки «Подписание манифеста ClientOnce» не всегда работает. Решение состоит в том, чтобы удалить упомянутые строки из ваших файлов csproj
нектар
98

Быстрое решение для начала работы - снять флажок «Подписывать манифесты ClickOnce» в: Проект -> (имя проекта) Свойства -> Вкладка «Подпись»

Rudy
источник
1
Мне пришлось снять оба флажка Sign the ClickOnce manifestsи Sign the assemblyфлажки под вкладкой подписи в свойствах проекта, чтобы избавиться от проблемы. Я не использовал подписи вообще.
RBT
13

Когда проект был изначально создан, сертификат подписи с однократным нажатием был добавлен на вкладку подписи свойств проекта. Это подписывает манифест, когда вы его создаете. Между тем и сейчас этот сертификат больше не доступен. Либо это была не та машина, на которой вы изначально ее строили, или она каким-то образом была очищена. Вам необходимо повторно добавить этот сертификат на свой компьютер или выбрать другой сертификат.

Гарднер
источник
24
«Вам необходимо повторно добавить этот сертификат на свой компьютер или выбрать другой сертификат». Если вы знаете, как добавить сертификат, было бы очень полезно указать, как в этой теме или ссылку на как в этой теме. Как есть, ваш ответ - это только половина ответа.
1
Страница свойств проекта> Signingв вертикальных вкладках> Нажмите на Create test certificate. И не забудьте зафиксировать новый созданный файл, You.Project_TemporaryKey.pfxпотому что .pfxфайлы часто игнорируются .
it3xl
Я думаю, что это единственное решение для проектов Visula Studio Office.
it3xl
13

Добавление нового сертификата решило эту проблему для меня. Страница свойств -> подпись -> Нажмите на Создать тестовый сертификат

moglimcgrath
источник
Есть ли способ сделать это на сервере сборки (через командную строку)?
ryanwebjackson
8

Убедитесь, что вы фиксируете .pfxфайлы в хранилище.

Я просто нашел *.pfxв моем дефолте .gitignore. Прокомментируйте это (by #) и передайте изменения. Затем вытащите хранилище и восстановите.

ApceH Hypocrite
источник
0

Проблема с ошибочными оставшимися записями в файле .csproj по-прежнему возникает с VS2015update3 и может также возникать, если вы пытаетесь изменить сертификат подписи на другой (даже если он был создан с использованием параметра «новый» в раскрывающемся списке выбора сертификата). , Совет в принятом ответе (пометить как не подписанный, сохранить, выгрузить проект, отредактировать .csproj, удалить свойства, относящиеся к старым сертификатам / отпечаткам пальцев / ключам и перезагрузить проект, установить сертификат) является надежным.

Саймон Коулман
источник
0

Я создаю новый ключ, мне нужно было найти в csproj старый ключ и выполнить его рефакторинг.

Билли Джейк О'Коннор
источник