Warum wird in meinem Excel-Add-In die Meldung "Manifest-Signaturzertifikat im Zertifikatspeicher nicht gefunden" angezeigt?

216

Ich habe ein Excel-Add-In-Projekt, das vor einigen Jahren in Visual Studio 2008 erstellt wurde. Es müssen einige Änderungen vorgenommen werden, sodass ich auf Visual Studio 2010 (die einzige IDE, die ich verwenden kann) aktualisiert habe. Ich bin nicht sicher, ob dies das Problem verursacht, aber es sind Hintergrundinformationen.

Wenn ich den Code auschecke und kompiliere, wird die Fehlermeldung "Fehler 1 Manifest-Signaturzertifikat im Zertifikatspeicher nicht gefunden" angezeigt.

Kann mir jemand sagen, was dies bedeutet und wie man es behebt?

Andy Parsons
quelle

Antworten:

250

Sie müssen dieses Zertifikat erneut zu Ihrem Computer hinzufügen oder ein anderes Zertifikat auswählen.

Um ein anderes Zertifikat auszuwählen oder eines neu zu erstellen, gehen Sie zur Eigenschaftenseite des Projekts, klicken Sie auf die Registerkarte Signieren und entweder

  • Klicken Sie auf Aus Geschäft auswählen
  • Klicken Sie auf Aus Datei auswählen
  • Klicken Sie auf Testzertifikat erstellen

Sobald einer dieser Schritte abgeschlossen ist, sollten Sie ihn erneut erstellen können.

Sathyajith Bhat
quelle
134
In Project's properties pagekönnen Signing tabSie das Kontrollkästchen "ClickOnce-Manifeste signieren" deaktivieren.
Rubens Mariuzzo
10
@ RubensMariuzzo - nicht, wenn Sie es tatsächlich unterschreiben wollen
Matt Wilko
Das Deaktivieren ist für Office-Add-Ins nicht möglich und wird erneut überprüft.
it3xl
1
Wie kann der Vorgang "Testzertifikat erstellen" auf einem Build-Server ausgeführt werden?
Ryanwebjackson
138

Ich habe diese Lösung gefunden, die das Problem für mich gelöst hat: Entfernen aller Einträge in Ihrem *.csproj, die fallen in:

<manifestcertificatethumbprint>...</manifestcertificatethumbprint>
<manifestkeyfile>...</manifestkeyfile>
<generatemanifests>...</generatemanifests>
<signmanifests>...</signmanifests>
Wernight
quelle
1
Dies ist erforderlich, wenn die Anwendung früher ClickOnce war, aber nicht mehr (Kontrollkästchen auf der Registerkarte Signieren abgeblendet)
Dan Bechard
1
arbeitete auch für mich. Anscheinend gab es in der Projektdatei einige Reste von Experimenten, die wir durchgeführt hatten und die manuell gereinigt werden mussten. Übrigens - ich musste auch die .snk-Datei aus dem Projekt entfernen. Für mich war es also: Entfernen Sie .snk, deaktivieren Sie die Signatur, bearbeiten Sie die Projektdatei, laden Sie das Projekt neu und aktivieren Sie die Signatur.
Arbeitsschutz
Wird anscheinend benötigt, wenn Sie jemals ClickOnce überprüft und dann zu Sign Assembly gewechselt haben.
Roland
1
Dies ist die beste Antwort.
Homam
3
Das Deaktivieren des "Signierens des ClientOnce-Manifests" funktioniert nicht immer. Die Lösung ist , die genannten Linien von Ihren csproj Dateien zu entfernen
Nektar
98

Eine schnelle Lösung, um mich zum Laufen zu bringen, bestand darin, das Kontrollkästchen "ClickOnce-Manifeste signieren" zu deaktivieren unter: Projekt -> (Projektname) Eigenschaften -> Registerkarte Signieren

Rudy
quelle
1
Ich musste beide deaktivieren Sign the ClickOnce manifestsund die Sign the assemblyKontrollkästchen unter der Registerkarte Signieren in den Projekteigenschaften aktivieren , um das Problem zu beheben . Ich habe überhaupt keine Unterschrift verwendet.
RBT
13

Bei der ursprünglichen Erstellung des Projekts wurde das einmalige Click-Signing-Zertifikat auf der Registerkarte "Signing" der Projekteigenschaften hinzugefügt. Dies signiert das einmalige Klickmanifest, wenn Sie es erstellen. Zwischen damals und heute ist dieses Zertifikat nicht mehr verfügbar. Entweder war dies nicht die Maschine, auf der Sie sie ursprünglich gebaut haben, oder sie wurde irgendwie aufgeräumt. Sie müssen dieses Zertifikat erneut zu Ihrem Computer hinzufügen oder ein anderes Zertifikat auswählen.

Gardner
quelle
24
"Sie müssen dieses Zertifikat erneut zu Ihrem Computer hinzufügen oder ein anderes Zertifikat auswählen." Wenn Sie wissen, wie das Zertifikat hinzugefügt wird, ist es sehr hilfreich, das Wie in diesem Thread oder einen Link zum Wie in diesem Thread anzugeben. Wie es ist, ist Ihre Antwort nur eine halbe Antwort.
1
Seite Projekteigenschaften> Signingin vertikalen Registerkarten> Klicken Sie auf Create test certificate. Vergessen Sie nicht, eine neu erstellte Datei festzuschreiben, You.Project_TemporaryKey.pfxda .pfxDateien häufig ignoriert werden .
it3xl
Ich denke, diese Lösung ist die einzige, die für Visula Studio Office-Projekte geeignet ist.
it3xl
13

Durch Hinzufügen eines neuen Zertifikats wurde dieses Problem für mich behoben. Eigenschaftenseite -> Signieren -> Klicken Sie auf Testzertifikat erstellen

moglimcgrath
quelle
Gibt es eine Möglichkeit, dies auf einem Build-Server (über die Befehlszeile) zu tun?
Ryanwebjackson
8

Stellen Sie sicher, dass Sie .pfxDateien in das Repository übertragen.

Ich habe gerade *.pfxin meiner Standardeinstellung gefunden .gitignore. Kommentieren Sie es (von #) und übernehmen Sie Änderungen. Dann ziehen Sie das Repository und erstellen Sie es neu.

ApceH Heuchler
quelle
0

Das Problem fehlerhafter übrig gebliebener Einträge in der .csproj-Datei tritt weiterhin bei VS2015update3 auf und kann auch auftreten, wenn Sie versuchen, das Signaturzertifikat durch ein anderes zu ändern (auch wenn dieses mit der Option "Neu" in der Dropdown-Liste "Zertifikatauswahl" generiert wurde). . Der Rat in der akzeptierten Antwort (als nicht signiert markieren, speichern, Projekt entladen, .csproj bearbeiten, die Eigenschaften der alten Zertifikate / Fingerabdrücke / Schlüssel entfernen und Projekt neu laden, Zertifikat festlegen) ist zuverlässig.

Simon Coleman
quelle
0

Ich erstelle einen neuen Schlüssel, musste den csproj nach dem alten durchsuchen und ihn umgestalten.

Billy Jake O'Connor
quelle