Dlaczego w moim dodatku do programu Excel pojawia się komunikat „Nie można znaleźć certyfikatu podpisującego manifest w magazynie certyfikatów”?

216

Mam projekt dodatku do programu Excel, który został utworzony kilka lat temu w Visual Studio 2008. Muszę wprowadzić pewne zmiany, więc uaktualniłem do Visual Studio 2010 (jedyne IDE, którego mogę użyć). Nie jestem pewien, czy to powoduje problem, ale jest to podstawowa informacja.

Kiedy sprawdzam kod i kompiluję go, pojawia się błąd „Błąd 1 Nie można znaleźć certyfikatu podpisującego manifest w magazynie certyfikatów”.

Czy ktoś może mi powiedzieć, co to znaczy i jak to naprawić?

Andy Parsons
źródło

Odpowiedzi:

250

Musisz ponownie dodać ten certyfikat do komputera lub wybrać inny certyfikat.

Aby wybrać inny certyfikat lub odtworzyć jeden, przejdź do strony właściwości projektu, kliknij kartę Podpisywanie i jedno z nich

  • Kliknij Wybierz ze sklepu
  • Kliknij Wybierz z pliku
  • Kliknij Utwórz certyfikat testowy

Po wykonaniu którejkolwiek z tych czynności powinieneś być w stanie ją ponownie zbudować.

Sathyajith Bhat
źródło
134
W Project's properties pagemożna przejść do Signing tabnastępnie odznacz pole wyboru „Zaloguj się manifestów ClickOnce”.
Rubens Mariuzzo
10
@RubensMariuzzo - nie, jeśli naprawdę chcesz to podpisać
Matt Wilko
Odznaczenie jest niemożliwe dla dodatków Office i zostanie sprawdzone ponownie.
it3xl
1
Jak można wykonać operację „Utwórz certyfikat testowy” na serwerze kompilacji?
ryanwebjackson
138

Znalazłem rozwiązanie, które rozwiązało dla mnie problem: Usunięcie wszystkich wpisów w twoim, *.csprojktóre należą do:

<manifestcertificatethumbprint>...</manifestcertificatethumbprint>
<manifestkeyfile>...</manifestkeyfile>
<generatemanifests>...</generatemanifests>
<signmanifests>...</signmanifests>
Wernight
źródło
1
Jest to konieczne, gdy wtedy aplikacja była ClickOnce, ale już nie jest (pole zaznaczone na szaro w zakładce Podpisywanie)
Dan Bechard
1
też dla mnie pracował. najwyraźniej w pliku projektu pozostały resztki po przeprowadzonych przez nas eksperymentach, które musieliśmy wyczyścić ręcznie. BTW - Musiałem również usunąć plik .snk z projektu. więc dla mnie było to: usuń .snk, wyłącz podpisywanie, edytuj plik projektu, ponownie załaduj projekt i włącz podpisywanie.
BHP
Widocznie potrzebne, jeśli kiedykolwiek sprawdziłeś ClickOnce, a następnie przełączyłeś się na Sign Assembly.
Roland
1
To najlepsza odpowiedź.
Homam
3
Odznaczenie opcji „Podpisywanie manifestu ClientOnce” nie zawsze działa. Rozwiązaniem jest usunięcie wspomnianych linii z plików csproj
nektar
98

Szybkim rozwiązaniem na początek było odznaczenie opcji „Zarejestruj manifesty ClickOnce” w: Projekt -> (nazwa projektu) Właściwości -> Karta Podpisywanie

Rudy
źródło
1
Musiałem odznaczyć oba Sign the ClickOnce manifestsi zaznaczyć Sign the assemblypola pod kartą podpisywania we właściwościach projektu, aby pozbyć się problemu. W ogóle nie korzystałem z podpisywania.
RBT,
13

Kiedy projekt został pierwotnie utworzony, certyfikat zakładki „kliknij raz” został dodany do karty podpisywania we właściwościach projektu. Oznacza to manifest jednorazowego kliknięcia podczas jego tworzenia. Od tego czasu certyfikat ten nie jest już dostępny. Albo to nie była maszyna, na której ją pierwotnie zbudowano, albo w jakiś sposób została oczyszczona. Musisz ponownie dodać ten certyfikat do komputera lub wybrać inny certyfikat.

Gardner
źródło
24
„Musisz ponownie dodać ten certyfikat do komputera lub wybrać inny certyfikat”. Jeśli wiesz, jak dodać certyfikat, bardzo pomocne byłoby podanie tego w tym wątku lub łącza do tego w tym wątku. Jak na razie, odpowiedź to tylko połowa odpowiedzi.
1
Strona Właściwości projektu> Signingw zakładkach pionowych> Kliknij Create test certificate. I nie zapomnij zatwierdzić nowo utworzonego pliku, You.Project_TemporaryKey.pfxponieważ .pfxpliki są często ignorowane .
it3xl
Myślę, że to rozwiązanie jest jedyne właściwe dla projektów Visula Studio Office.
it3xl
13

Dodanie nowego certyfikatu rozwiązało ten problem. Strona Właściwości -> podpisywanie -> Kliknij Utwórz certyfikat testowy

moglimcgrath
źródło
Czy można to zrobić na serwerze kompilacji (za pomocą wiersza polecenia)?
ryanwebjackson
8

Upewnij się, że zatwierdzasz .pfxpliki do repozytorium.

Właśnie znalazłem *.pfxw moim domyślnym .gitignore. Skomentuj to (przez #) i zatwierdź zmiany. Następnie wyciągnij repozytorium i przebuduj.

Obłudnik ApceH
źródło
0

Problem błędnych pozostawionych wpisów w pliku .csproj nadal występuje w przypadku VS2015update3 i może również wystąpić, jeśli spróbujesz zmienić certyfikat podpisywania na inny (nawet jeśli jest on generowany przy użyciu opcji „nowy” w menu wyboru certyfikatu) . Porada w zaakceptowanej odpowiedzi (oznacz jako niepodpisane, zapisz, zwolnij projekt, edytuj .csproj, usuń właściwości odnoszące się do starych certyfikatów / odcisków palców / kluczy i przeładuj projekt, ustaw certyfikat) jest wiarygodna.

Simon Coleman
źródło
0

Tworzę nowy klucz, musiałem przeszukać stary csproj i znaleźć go ponownie.

Billy Jake O'Connor
źródło