Strong Name für eine .NET Applikation erzeugen

Unter .NET kann man Assemblies mit einem „Strong Name“ versehen. Dieser sorgt dafür das dass Assembly eindeutig identifiziert werden kann. Möchte man einen solchen erstellen so benötigt man zuerst ein Schlüsselpaar welches mit dem „Strong Name Utility“ angelegt wird:

sn –k keypair.snk

Das Tool befindet sich dabei im Windows SDK Ordner (z.B. C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A) wobei sich die Version des SDKs durchaus unterscheiden kann. Die erzeugte Snk-Datei wird dabei dem Projekt hinzugefügt. Anschließend stellt man in den Projekteinstellungen unter „Signing“ die entsprechende Datei ein. In diesem Tab ist es auch möglich eine neue Schlüsseldatei zu generieren, so das man für den Schritt der Erzeugung nicht auf das „Strong Name Utility“ angewiesen ist.

Die Projektoptionen im Visual Studio

Die Projektoptionen im Visual Studio

Bei der Signierung ist es wichtig darauf zu achten, das alle Bibliotheken ebenfalls mit einem Strong Name versehen sind, sonst verweigert das Studio die Signierung der Anwendung. Möchte man aus dem signierten Assembly den öffentlichen Schlüssel extrahieren, so kommt wieder das „Strong Name Utility“ zur Anwendung:

sn -e Assembly.exe public.pk

Das Schlüsselpaar welches man erzeugt hat, kann man dabei für alle eigenen Anwendungen benutzen. Es ist nicht nötig, für jede Anwendung ein eigenes Schlüsselpaar zu erzeugen, da sich der „SimpleName“ bei jedem Assembly unterscheidet.

Weitere Informationen gibt es unter:
http://msdn.microsoft.com/en-us/magazine/cc163583.aspx
http://msdn.microsoft.com/en-us/library/h4fa028b%28v=vs.80%29.aspx