web-dev-qa-db-de.com

„Konfirmatsignaturzertifikat im Zertifikatsspeicher nicht gefunden“ - auch beim Hinzufügen eines neuen Schlüssels

Ich kann keine Projekte mit einer starken Namensschlüssel-Signatur erstellen - die Meldung im Titel wird immer angezeigt.

Ja, das Projekt wurde ursprünglich von einem anderen Rechner kopiert. Auch wenn ich in den Projekteigenschaften über die Registerkarte Signieren einen neuen Schlüssel hinzufüge, wird dieser Fehler weiterhin angezeigt.

Ich habe versucht, Visual Studio als Administrator auszuführen, und habe die Schlüssel manuell zum Windows-Zertifikatspeicher hinzugefügt.

Hilfe!

Edit: Ich bekomme diesen Fehler nicht mit einem neuen Projekt, aber ich möchte, dass dieses bestehende Projekt funktioniert. Es funktioniert nicht, auch wenn ich ein neues Zertifikat erstelle!

98
Marcus

Ich habe endlich die Lösung gefunden und hoffe wirklich, dass dies auch jemand anderem hilft.

  1. Bearbeiten Sie die .csproj-Datei für das betreffende Projekt. 
  2. Löschen Sie die folgenden Codezeilen:

    <PropertyGroup>
       <ManifestCertificateThumbprint>...........</ManifestCertificateThumbprint>
    </PropertyGroup>
    <PropertyGroup>
       <ManifestKeyFile>xxxxxxxx.pfx</ManifestKeyFile>
    </PropertyGroup>
    <PropertyGroup>
       <GenerateManifests>true</GenerateManifests>
    </PropertyGroup>
    <PropertyGroup>
       <SignManifests>false</SignManifests>
    </PropertyGroup>
    
150
Marcus

Gehen Sie in Visual Studio zu den "Eigenschaften" Ihres Projekts. Dann gehen Sie zum Signier-Tab.

Vergewissern Sie sich dann, dass die Option "Man the Click Once" -Manifeste deaktiviert ist.


Aktualisierte Anweisungen:

In Ihrem Projektmappen-Explorer:

  1. Rechtsklick auf dein Projekt
  2. klick auf Eigenschaften
  3. normalerweise auf der linken Seite, Wählen Sie die Registerkarte "Signieren"
  4. Aktivieren Sie das Kontrollkästchen Unterschreiben Sie die ClickOnce-Manifeste.
  5. Stellen Sie sicher, dass Sie sparen!

 enter image description here

90
ADL
  1. Öffnen Sie die .csproj-Datei in Notepad.
  2. Löschen Sie die folgenden Informationen zum Signieren von Zertifikaten im Zertifikatspeicher

    <PropertyGroup>
      <ManifestCertificateThumbprint>xxxxx xxxxxx</ManifestCertificateThumbprint>
      <ManifestKeyFile>xxxxxxxx.pfx</ManifestKeyFile>
    <GenerateManifests>true</GenerateManifests>
    <SignManifests>false</SignManifests>
    </PropertyGroup>
    
9

Versuchen Sie Folgendes: Klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Gehe zu Eigenschaften -> Klicken Sie auf Signieren , das sich auf der linken Seite des Bildschirms befindet -> Deaktivieren Sie the Signieren Sie den Klick, sobald er auftritt -> Speichern und erstellen

9
Charming ZooZoo

Gehen Sie in Visual Studio zu Ihren Projekten "Eigenschaften". Dann gehen Sie zum Signier-Tab.

Vergewissern Sie sich dann, dass die Option "Man the Click Once" -Manifeste deaktiviert ist.

ODER 

1.Öffnen Sie die .csproj-Datei im Editor.

2.Löschen Sie die folgenden Informationen zum Signieren des Zertifikats im Zertifikatsspeicher xxxxx xxxxxx xxxxxxxx.pfx wahr falsch `

Arbeitete für mich. 

4
Ash

Es ist einfach!!

Ich habe dieses Problem mit den folgenden Schritten behoben:

  1. Projekteigenschaften öffnen  img
  2. Klicken Sie auf die Registerkarte Signieren
  3. Deaktivieren Sie "Versammlung unterschreiben"

Das ist es!!

3
Amit Kadam

Angenommen, dies ist ein persönliches Zertifikat, das von Fenstern auf dem System erstellt wurde, aus dem Sie Ihr Projekt kopiert haben. Sie können den Zertifikat-Manager auf dem System verwenden, in dem sich das Projekt jetzt befindet, und das Zertifikat importieren. Starten Sie den Zertifikatsmanager (certmgr), wählen Sie die persönlichen Zertifikate aus, klicken Sie mit der rechten Maustaste unter die Liste der vorhandenen Zertifikate und wählen Sie den Import aus den Aufgaben aus. Verwenden Sie die Durchsuchen, um die .pfx im Projekt zu finden (die .pfx des vorherigen Systems, das Sie mit dem Projekt kopiert haben). Es sollte sich im Unterverzeichnis mit dem gleichen Namen wie das Projektverzeichnis befinden. Ich bin mit C # und VS vertraut. Wenn dies nicht Ihre Umgebung ist, wird die .pfx-Datei möglicherweise anderswo sein oder dieser Vorschlag trifft möglicherweise nicht zu. Nach dem Import sollten Sie eine Statusmeldung erhalten. Wenn Sie erfolgreich waren, sollte der Fehler beim Kompilierungszertifikat verschwunden sein.certmgr screen

2
dpminusa

So signieren Sie eine Assembly mit einem starken Namen mithilfe von Attributen

AssemblyInfo.cs öffnen (in $(SolutionDir)\Properties)

die Variable AssemblyKeyFileAttribute oder AssemblyKeyNameAttribute gibt den Namen der Datei oder des Containers an, die das Schlüsselpaar enthält, das beim Signieren der Assembly mit einem starken Namen verwendet werden soll.

fügen Sie den folgenden Code hinzu:

[Assembly:AssemblyKeyFileAttribute("keyfile.snk")]
0
QuangNHb

Sie sagten, Sie hätten Dateien von einem anderen Computer kopiert. Haben Sie sie nach dem Kopieren "entsperrt"? Insbesondere sollte die .snk-Datei überprüft werden, um sicherzustellen, dass sie nicht als unsicher markiert ist.

0
Owen Wengerd

Wenn Sie nur das Projekt oder die Lösung lokal erstellen müssen, ist das Entfernen der Signatur möglicherweise eine sehr einfache Lösung, wie andere dies vermuten.

Wenn Sie jedoch diesen Fehler auf Ihrem Automations-Build-Server wie TeamCity haben, auf dem Sie Ihre aktuellen Release-Teile für die Bereitstellung oder Verteilung erstellen, möchten Sie möglicherweise überlegen, wie Sie dieses Zertifikat ordnungsgemäß im Cert-Speicher auf der Build-Maschine installieren können, damit Sie es erhalten ein signiertes Paket am Ende des Builds.

Im Allgemeinen wird das Einchecken/Festschreiben von PFX -Zertifikaten in die Quellcodeverwaltung nicht empfohlen. Daher ist es eine andere Frage, wie Sie diese Dateien während des Erstellungsprozesses auf Ihrem Build-Server abrufen Datei zusammen mit dem Lösungscode gespeichert, damit Sie ihn im Projektordner finden können.

Sie müssen dieses Zertifikat einfach unter richtiges Konto auf Ihrem Build-Server installieren.

  1. Laden Sie PsExec von Windows Sysinternals herunter.

  2. Öffnen Sie eine Eingabeaufforderung und geben Sie Folgendes ein. Es erscheint eine neue Eingabeaufforderung, die als Local System ausgeführt wird (vorausgesetzt, dass Ihre TeamCity unter dem Standardkonto für das lokale System ausgeführt wird):

    > psexec.exe -i -s cmd.exe

  3. Wechseln Sie in dieser neuen Eingabeaufforderung in das Verzeichnis, in dem sich das Zertifikat befindet, und geben Sie den zu installierenden Dateinamen ein (ändern Sie den Namen der Datei in Ihren eigenen Namen):

    > mykey.pfx

  4. Der Assistent zum Importieren von Zertifikaten wird gestartet. Klicken Sie sich durch und wählen Sie alle vorgeschlagenen Standardeinstellungen aus.

  5. Führen Sie den Build aus.

Alle Credits gehen an Stuart Noble (und dann weiter an Laurent Kempé glaube ich ☺).

0
Sevenate

Es reicht nicht aus, Schlüssel manuell zum Windows-Zertifikatspeicher hinzuzufügen. Das Zertifikat enthält nur den signierten öffentlichen Schlüssel. Sie müssen auch den privaten Schlüssel importieren, der dem öffentlichen Schlüssel im Zertifikat zugeordnet ist. Eine PFX-Datei enthält sowohl öffentliche als auch private Schlüssel in einer einzigen Datei. Das müssen Sie importieren.

0
Owen Wengerd