415 Stimmen

Die Schlüsseldatei 'blah.pfx' kann nicht importiert werden - Fehler 'Die Schlüsseldatei ist möglicherweise passwortgeschützt'

Wir haben gerade ein Upgrade unserer Visual Studio 2008-Projekte auf Visual Studio 2010 durchgeführt. Alle unsere Assemblies wurden mit einer starken Signatur versehen. Verisign Code Signing-Zertifikat. Seit dem Upgrade erhalten wir ständig den folgenden Fehler:

Die folgende Schlüsseldatei kann nicht importiert werden: Firmenname.pfx. Die Schlüsseldatei ist möglicherweise passwortgeschützt. Versuchen Sie zur Behebung des Problems, das Zertifikat erneut zu importieren, oder installieren Sie das Zertifikat manuell auf dem Strong Name CSP mit dem folgenden Schlüsselcontainernamen: VS_KEY_3E185446540E7F7A

Bei einigen Entwicklern ist dies der Fall, bei anderen nicht. Einige Methoden zur Behebung dieses Problems, die in einigen Fällen funktionierten, sind:

  • Neuinstallation der Schlüsseldatei über den Windows Explorer (Rechtsklick auf die PFX-Datei und Klick auf Installieren)
  • Wenn Sie Visual Studio 2010 zum ersten Mal auf einem neuen Computer installieren, werden Sie beim ersten Öffnen des Projekts zur Eingabe des Kennworts aufgefordert, und dann funktioniert es. Auf Rechnern, die von Visual Studio 2008 aktualisiert wurden, erhalten Sie diese Option nicht.

Ich habe versucht, die SN.EXE Dienstprogramm (Strong Name Tool), um den Schlüssel mit dem Strong Name CSP zu registrieren, wie die Fehlermeldung vorschlägt, aber immer, wenn ich das Tool mit irgendwelchen Optionen mit der Version ausführe, die mit Visual Studio 2010 geliefert wurde, listet SN.EXE nur seine Befehlszeilenargumente auf, anstatt etwas zu tun. Dies geschieht unabhängig davon, welche Argumente ich angebe.

Warum passiert das, und was sind klare Schritte, um das Problem zu lösen? Ich bin kurz davor, aufzugeben ClickOnce Installationen und Microsoft Code Signing.

4voto

PeterI Punkte 472

Als der ursprüngliche Autor des Workarounds im connect-Fehlerbericht gibt es ZWEI Varianten dieser Meldung (wie ich später herausgefunden habe)

Bei einer Variante verwenden Sie sn.exe (in der Regel, wenn Sie eine starke Namensgebung verwenden), um den Schlüssel in den Speicher für starke Namensgebung zu importieren.

Die andere Variante, für die Sie certmgr zum Importieren verwenden, ist das Codesigning für Dinge wie die einmalige Bereitstellung (beachten Sie, dass Sie dasselbe Zertifikat für beide Zwecke verwenden können).

Ich hoffe, das hilft.

0 Stimmen

Ja, das haben wir auch mit dem Microsoft-Support ausprobiert, und das ist der Weg, um den Code-Signierungsimport durchzuführen. Das Problem scheint wirklich darin zu bestehen, dass das Zertifikatspasswort während des Checkin-Prozesses verloren geht - Quelle sicher. Aber das scheint nicht das eigentliche Problem zu sein. Wenn Sie die Zertifikatsdetails auf dem Widnows 7-Rechner Nr. 1 eingeben und dann dieselbe Datei auf einen anderen Rechner verschieben und registrieren, funktioniert zwar die Registrierung, aber die Erstellung schlägt fehl. Microsoft untersucht das Problem noch für uns. Im Moment mussten wir die Code-Signierung deaktivieren und während der Veröffentlichung manuell signieren.

3voto

Milad Xandi Punkte 87

Das hat mein Problem gelöst: Öffnen Sie Ihr VS-Projekt

Doppelklicken Sie auf Package.appxmanifest

Zur Registerkarte Verpackung gehen

Klicken Sie auf Zertifikat wählen

Klicken Sie auf Zertifikat konfigurieren

Wählen Sie eine Datei aus und verwenden Sie die von Unity oder einem anderen Unternehmen erstellte example.pfx

3voto

Samuel Punkte 1769

Bei mir hat nichts funktioniert, aber dann habe ich mir den Zertifikatsmanager (mmc.exe) angesehen. Das Zertifikat wurde nicht in den persönlichen Speicher importiert, also habe ich es manuell importiert und dann das Projekt kompiliert.

Voir _Signieren von ClickOnce-Manifesten und Strong-Name-Assemblys mithilfe der Signierungsseite von Visual Studio Project Designer, Signieren von Assemblies_ .

0 Stimmen

Dies löste das Problem auch bei mir, nachdem ich die SN.exe -i Korrektur durchgeführt hatte.

2voto

Sentinel Punkte 3472

Mein Problem war, dass der TFS Build Controller als Netzwerkdienst ausgeführt wurde und ich aus irgendeinem Grund nicht verstand, warum die Zertifikate des Visual Studio Build Host-Dienstes nicht verwendet wurden. Ich änderte die Identität des Visual Studio Build-Dienstes in etwas, das besser zu verwalten war, stellte sicher, dass er Rechte auf dem TFS-Server hatte, und fügte die Zertifikate manuell über die MMC hinzu.

Das Problem war auch, dass MSBuild die passwortgeschützten Zertifikate nicht zum Speicher hinzufügen kann.

0 Stimmen

In welchem Geschäft müssen Sie es hinzufügen?

0 Stimmen

Ich habe das Gleiche getan (und auch Zertifikate in diesen Benutzern Personal/Trusted Root/Trusted Pub nicht sicher, was es behoben hat) und war in der Lage, auf den nächsten TFS-Fehler zu gehen, dass ich widersprüchliche Arbeitsbereiche hatte, so dass ich, um das zu korrigieren, auch einen neuen Build-Agent entfernen und hinzufügen musste.

2voto

user1113289 Punkte 21

Die erneute Auswahl der Schlüsseldatei in einer Combobox und die Eingabe des Passworts helfen uns dabei.

Aber das muss jedes Mal geschehen, wenn sich die Schlüsseldatei ändert, und das scheint nicht in Ordnung zu sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X