Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bei der Signierung mit starkem Namen erhält eine Softwarekomponente eine global eindeutige Identität. Starke Namen werden verwendet, um sicherzustellen, dass die Assembly nicht von einer anderen Person spooft werden kann, und um sicherzustellen, dass Komponentenabhängigkeiten und Konfigurationsanweisungen der richtigen Komponenten- und Komponentenversion zugeordnet sind.
Ein starker Name besteht aus der Identität der Assembly (einfacher Textname, Versionsnummer und Kulturinformationen) sowie einem öffentlichen Schlüsseltoken und einer digitalen Signatur.
Informationen zum Signieren von Assemblys in Visual Basic- und C#-Projekten finden Sie unter Erstellen und Verwenden von assemblys mit starkem Namen.
Informationen zum Signieren von Assemblys in C++-Projekten finden Sie unter "Assemblys mit starkem Namen" (C++/CLI).
Hinweis
Die Signierung mit starkem Namen schützt nicht vor Reverse Engineering der Assembly. Informationen zum Schutz vor Reverse Engineering finden Sie in der Dotfuscator Community.
Anlagetypen und Unterzeichnung
Sie können .NET-Assemblys und Anwendungsmanifeste signieren:
Ausführbare Dateien (.exe)
Anwendungsmanifeste (.exe.manifest)
Bereitstellungsmanifeste (.application)
Freigegebene Komponentenassemblies (.dll)
Signieren Sie die folgenden Objekttypen:
Assemblys, wenn Sie sie im globalen Assemblycache (GAC) bereitstellen möchten.
ClickOnce-Anwendungs- und Bereitstellungsmanifeste. Visual Studio aktiviert standardmäßig das Signieren für diese Anwendungen.
Primäre Interop-Assemblys, die für die COM-Interoperabilität verwendet werden. Das TLBIMP-Hilfsprogramm erzwingt beim Erstellen einer primären Interopassembly aus einer COM-Typbibliothek eine starke Benennung.
Im Allgemeinen sollten Sie keine ausführbaren Dateien signieren. Eine stark benannte Komponente kann nicht auf eine nicht stark benannte Komponente verweisen, die mit der Anwendung bereitgestellt wird. Visual Studio signiert keine ausführbaren Anwendungsdateien, sondern signiert stattdessen das Anwendungsmanifest, das auf die schwach benannte ausführbare Datei verweist. Vermeiden Sie das Signieren von Komponenten, die privat für Ihre Anwendung sind, da das Signieren die Verwaltung von Abhängigkeiten erschwert.
So signieren Sie eine Assembly in Visual Studio
Das Verfahren zum Signieren einer Assembly hängt davon ab, welche Version des Project-Designers Ihr Projekt verwendet.
Für .NET Core-C#-Projekte (und .NET 5 und höher) in Visual Studio 2022:
- Öffnen Sie das Projekteigenschaftenfenster (klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie "Eigenschaften" aus).
- Suchen Sie unter "Erstellen" nach " Starke Benennung", und aktivieren Sie das Kontrollkästchen "Assembly signieren" . Beim Aktivieren des Kontrollkästchens werden weitere Optionen für die Schlüsseldatei und die Verzögerungssignierung angezeigt.
- Geben Sie eine Schlüsseldatei an.
Wenn Sie nicht über eine Schlüsseldatei verfügen, können Sie die Befehlszeile verwenden, um eine .snk
Datei zu erstellen. Sie können auch ein Zertifikat in einer .pfx
Datei mithilfe des Veröffentlichungsprozesses verwenden oder generieren, und im Schritt "Sign manifests " können Sie ein Testzertifikat erstellen, das nur während der Entwicklung und Tests verwendet werden soll, oder für die Produktion ein von Ihrer IT-Abteilung oder von einer autorisierten Quelle ausgestelltes Zertifikat verwenden. Siehe Bereitstellen einer .NET Windows Desktop-App mit ClickOnce.
Für .NET Framework- und Visual Basic-Projekte in Visual Studio 2022 oder in Visual Studio 2019:
- Öffnen Sie die Registerkarte " Signieren " des Projekteigenschaftenfensters (klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie "Eigenschaften" aus). Wählen Sie die Registerkarte Signieren aus.
- Aktivieren Sie das Kontrollkästchen „Assembly signieren“.
- Geben Sie eine Schlüsseldatei an. Wenn Sie eine neue Schlüsseldatei erstellen möchten, werden immer neue Schlüsseldateien im PFX-Format erstellt. Sie benötigen einen Namen und ein Kennwort für die neue Datei.
Warnung
Sie sollten Ihre Schlüsseldatei immer mit einem Kennwort schützen, um zu verhindern, dass eine andere Person sie verwendet. Sie können Ihre Schlüssel auch sichern, indem Sie Anbieter oder Zertifikatspeicher verwenden.
Sie können auch auf einen schlüssel verweisen, den Sie bereits erstellt haben. Weitere Informationen zum Erstellen von Schlüsseln finden Sie unter Erstellen eines öffentlich-privaten Schlüsselpaars.
Wenn Sie nur Zugriff auf einen öffentlichen Schlüssel haben, können Sie die Verzögerungssignierung verwenden, um die Zuweisung des Schlüssels zurückzuweisen. Sie aktivieren das verzögerte Signieren, indem Sie das Kontrollkästchen Nur verzögertes Signieren auswählen. Ein verzögert signiertes Projekt wird nicht ausgeführt, und Sie können es nicht debuggen. Sie können die Überprüfung während der Entwicklung jedoch überspringen, indem Sie das toolSn.exe starken Namen mit der -Vr
Option verwenden.