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 Computer kopiert. Selbst wenn ich über die Registerkarte Signieren in den Projekteigenschaften einen neuen Schlüssel hinzufüge, wird dieser Fehler weiterhin angezeigt.
Ich habe versucht, Visual Studio als Administrator auszuführen, und habe versucht, die Schlüssel manuell zum Windows-Zertifikatspeicher hinzuzufügen.
Hilfe!
Bearbeiten: Ich erhalte diesen Fehler bei einem neuen Projekt nicht, aber ich würde dieses vorhandene Projekt gerne zum Laufen bringen. Es wird nicht funktionieren, auch wenn ich ein neues Zertifikat erstelle!
Antworten:
Ich habe endlich die Lösung gefunden und hoffe wirklich, dass dies auch jemand anderem hilft.
.csproj
Datei für das betreffende Projekt.Löschen Sie die folgenden Codezeilen:
quelle
ManifestCertificateThumbprint
undManifestKeyFile
lösen.Gehen Sie in Visual Studio zu den "Eigenschaften" Ihres Projekts. Gehen Sie dann zur Registerkarte Signieren.
Stellen Sie dann sicher, dass Sign the Click Once Manifests deaktiviert ist.
Aktualisierte Anweisungen:
In Ihrem Projektmappen-Explorer:
quelle
Es ist einfach!!
Ich habe dieses Problem folgendermaßen gelöst:
Das ist es!!
quelle
Löschen Sie die folgenden Informationen zum Signieren des Zertifikats im Zertifikatspeicher
quelle
Versuchen Sie Folgendes : Klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Gehen Sie zu Eigenschaften -> Klicken Sie auf Signieren auf der linken Seite des Bildschirms -> Deaktivieren Sie das Kontrollkästchen Klicken Sie, sobald sich der Klick manifestiert -> Speichern und erstellen
quelle
Gehen Sie zu Ihren Projekten "Eigenschaften" in Visual Studio. Gehen Sie dann zur Registerkarte Signieren.
Stellen Sie dann sicher, dass Sign the Click Once Manifests deaktiviert ist.
ODER
1.Öffnen Sie die .csproj-Datei im Editor.
2. Löschen Sie die folgenden Informationen zum Signieren des Zertifikats im Zertifikatspeicher xxxxx xxxxxx xxxxxxxx.pfx true false `
Hat für mich gearbeitet.
quelle
Angenommen, dies ist ein persönliches Zertifikat, das von Windows auf dem System erstellt wurde, von dem Sie Ihr Projekt kopiert haben, können Sie den Zertifikatmanager auf dem System verwenden, auf dem sich das Projekt jetzt befindet, und das Zertifikat importieren. Starten Sie den Zertifikatsmanager (certmgr) und wählen Sie die persönlichen Zertifikate aus. Klicken Sie dann mit der rechten Maustaste unter die Liste der vorhandenen Zertifikate und wählen Sie Import aus den Aufgaben. Verwenden Sie die Suche, 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 demselben Namen wie das Projektverzeichnis befinden. Ich bin mit C # und VS vertraut. Wenn dies also nicht Ihre Umgebung ist, befindet sich die PFX möglicherweise an einer anderen Stelle, oder dieser Vorschlag trifft möglicherweise nicht zu. Nach dem Import sollten Sie eine Statusmeldung erhalten. Wenn Sie erfolgreich waren, sollte der Fehler beim Kompilieren des Zertifikats behoben sein.
quelle
Es reicht nicht aus, dem Windows-Zertifikatspeicher manuell Schlüssel 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.
quelle
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.
quelle
So signieren Sie eine Assembly mit einem starken Namen mithilfe von Attributen
Öffnen
AssemblyInfo.cs
(in$(SolutionDir)\Properties
)das
AssemblyKeyFileAttribute
oder dasAssemblyKeyNameAttribute
, das den Namen der Datei oder des Containers angibt, 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:
quelle
Wenn Sie das Projekt oder die Lösung nur lokal erstellen müssen, ist das Entfernen der Signatur möglicherweise eine kinderleichte Lösung, wie andere vorschlagen.
Wenn Sie diesen Fehler jedoch auf Ihrem Automatisierungs-Build-Server wie TeamCity haben, auf dem Sie Ihre eigentlichen Release-Teile für die Bereitstellung oder Verteilung erstellen, sollten Sie überlegen, wie Sie dieses Zertifikat ordnungsgemäß im Zertifikatspeicher auf dem Build-Computer installieren können, damit Sie es erhalten ein signiertes Paket am Ende des Builds.
Im Allgemeinen wird nicht erneut mit dem Einchecken / Festschreiben von PFX- Zertifikaten in die Quellcodeverwaltung begonnen. Daher ist es eine etwas andere Frage, wie Sie diese Dateien während des Erstellungsprozesses auf Ihrem Build-Server abrufen. Manchmal wird diese Datei jedoch zusammen mit der Lösung gespeichert Code, damit Sie ihn im Projektordner finden können.
Sie müssen dieses Zertifikat lediglich unter einem geeigneten Konto auf Ihrem Build-Server installieren .
Laden Sie PsExec von Windows Sysinternals herunter .
Öffnen Sie eine Eingabeaufforderung und geben Sie Folgendes ein. Es wird eine neue Eingabeaufforderung angezeigt, die als lokales System ausgeführt wird (vorausgesetzt, Ihre TeamCity wird unter dem Standardkonto für lokales System ausgeführt):
> psexec.exe -i -s cmd.exe
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):
> mykey.pfx
Der Assistent zum Importieren von Zertifikaten wird gestartet. Klicken Sie sich durch und wählen Sie alle vorgeschlagenen Standardeinstellungen aus.
Führen Sie den Build aus.
Alle Credits gehen an Stuart Noble (und dann weiter an Laurent Kempé, glaube ich ☺).
quelle