Assemblys mit starkem Namen

Ein starker Name setzt sich aus der Identität der Assembly – dem einfachen Textnamen, der Versionsnummer und Kulturinformationen (falls vorhanden) – sowie einem öffentlichen Schlüssel und einer digitalen Signatur zusammen. Er wird aus einer Assemblydatei generiert, d. h. aus der Datei mit dem Assemblymanifest, das seinerseits die Namen und Hashs aller Dateien enthält, aus denen die Assembly besteht. Hierbei wird der entsprechende private Schlüssel verwendet. Microsoft® Visual Studio® .NET und andere Entwicklungstools von Windows Software Development Kit (SDK) können einer Assembly starke Namen zuordnen. Bei Assemblys mit demselben starken Namen wird davon ausgegangen, dass sie identisch sind.

Sie können sicherstellen, dass ein Name global eindeutig ist, indem Sie eine Assembly mit einem starken Namen signieren. Im Einzelnen erfüllen starke Namen folgende Anforderungen:

  • Starke Namen garantieren Namenseindeutigkeit durch die Verwendung eindeutiger Schlüsselpaare. Außer Ihnen kann niemand denselben Assemblynamen generieren, da eine mit einem bestimmten privaten Schlüssel erzeugte Assembly einen anderen Namen aufweist als eine Assembly, die mit einem anderen privaten Schlüssel generiert wird.

  • Starke Namen schützen die Versionsherkunft einer Assembly. Mit einem starken Namen können Sie sicherstellen, dass niemand eine Nachfolgeversion der Assembly herstellen kann. Für die Benutzer ist gewährleistet, dass die Version der Assembly, die geladen wird, von demselben Herausgeber stammt, der die Version erstellt hat, in der die Anwendung erstellt wurde.

  • Starke Namen bieten eine starke Integritätsprüfung. Durch das Übergeben der .NET Framework-Sicherheitsüberprüfungen wird gewährleistet, dass der Inhalt der Assembly seit ihrer Erstellung nicht geändert wurde. Beachten Sie jedoch, dass starke Namen an sich keinen Vertrauensgrad darstellen, wie ihn z. B. eine digitale Signatur und ein unterstützendes Zertifikat bieten.

Wenn Sie auf eine Assembly mit einem starken Namen verweisen, erwarten Sie sich davon bestimmte Vorteile, z. B. Versions- und Namensschutz. Wenn die Assembly mit dem starken Namen anschließend auf eine Assembly mit einem einfachen Namen verweist, die diese Eigenschaften nicht besitzt, büßen Sie sämtliche Vorteile wieder ein, die sich aus der Verwendung von Assemblys mit starkem Namen ergeben. Die Folge sind neue DLL-Konflikte. Assemblys mit starkem Namen können daher nur auf andere Assemblys mit starkem Namen verweisen.

Siehe auch

Aufgaben

Gewusst wie: Signieren einer Assembly mit einem starken Namen

Konzepte

Globaler Assemblycache