Чому я отримую "Неможливо знайти сертифікат явного підпису в магазині сертифікатів" у своєму Excel Addin?


216

У мене є проект надбудови Excel, який був створений пару років тому у Visual Studio 2008. Було внесено деякі зміни, тому я перейшов до Visual Studio 2010 (єдиний IDE, який я можу використовувати). Не впевнений, чи це викликає проблему, але це довідкова інформація.

Коли я перевіряю код і компілюю його, я отримую помилку: "Помилка 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>

1
Це необхідно, коли тоді програма була ClickOnce, але її більше немає (прапорець
перенесено на

1
також працював на мене. Мабуть, у файлі проекту були залишки, які ми експериментували на ньому, які потрібно було очистити вручну. BTW - мені також довелося видалити файл .snk з проекту. тож для мене це було: видалити .snk, відключити підпис, відредагувати файл проекту, перезавантажити проект та включити підпис.
ОСГ

Мабуть, це потрібно, якщо ви коли-небудь перевіряли ClickOnce, а потім переходили на Збірку підписів.
Роланд

1
Це найкраща відповідь.
Хомам

3
Зніміть прапорець "Підписання маніфесту ClientOnce" не завжди працює. Рішення полягає в тому, щоб видалити згадані рядки зі своїх файлів csproj
нектар

98

Швидким рішенням, з яким я рухався, було зняти прапорець "Підписати маніфести ClickOnce" у: Проект -> (назва проекту) Властивості -> Вкладка підписання


1
Щоб позбутися проблеми, мені довелося зняти обидва Sign the ClickOnce manifestsі Sign the assemblyвстановити прапорці під вкладкою підписання у властивостях проекту. Я взагалі не використовував жодного підпису.
RBT

13

Коли проект було створено спочатку, на вкладці підписання властивостей проекту було додано сертифікат підписання клацанням один раз. Це підписує маніфест одного натискання, коли ви будуєте його. Між тим і зараз цей сертифікат більше не доступний. Або це не машина, на якій ви спочатку її побудували, або її якось очистили. Потрібно повторно додати цей сертифікат до свого пристрою або вибрати інший сертифікат.


24
Msgstr "Вам потрібно знову додати цей сертифікат до свого комп'ютера або обрати інший сертифікат." Якщо ви знаєте, як додати сертифікат, було б дуже корисно вказати, як у цій темі або посилання на те, як у цьому потоці. Так, ви відповідаєте лише на половину відповіді.

1
Сторінка властивостей проекту> Signingна вертикальних вкладках> Клацніть на Create test certificate. І не забудьте зробити новий створений файл, You.Project_TemporaryKey.pfxоскільки .pfxфайли часто ігноруються .
it3xl

Я думаю, що це рішення є єдиним для проектів Visula Studio Office.
it3xl

13

Додавання нового сертифіката вирішило цю проблему для мене. Сторінка властивостей -> підписання -> Клацніть на Створити тестовий сертифікат


Чи є спосіб це зробити на сервері збірки (через командний рядок)?
ryanwebjackson

8

Переконайтеся, що ви призначаєте .pfxфайли до сховища.

Я щойно знайшов *.pfxза замовчуванням .gitignore. Прокоментуйте це (від #) та введіть зміни. Потім витягніть сховище та відновіть.



0

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.