Strongly Named Assembly (SNA)

Eintrag zuletzt aktualisiert am: 21.02.2005

Ein Strong Name für eine Assembly (synonymer Begriff: Shared Name) sorgt dafür, dass keine Verwechslungsgefahr zwischen (gleichnamigen) Assemblies unterschiedlicher Hersteller besteht. Gleichzeitig garantiert ein Strong Name die Unversehrtheit einer Assembly. Der Strong Name garantiert aber nicht die Identität des Herstellers. Dazu ist eine Authenticode-Signatur erforderlich.

Signierung einer Assembly

Zunächst benötigt man ein Schlüsselpaar in Form einer .snk-Datei (Strong Name Key File). Besitzt man kein solches Schlüsselpaar, kann man eines mit dem Werkzeug sn.exe aus dem .NET Framework SDK erzeugen.
sn -k ITVisionsTestKey.snk

Das Strong Name Key File können Sie auf zwei Wegen einsetzen, um die Assembly zu signieren:
1. Nutzen Sie im Code eine Assembly-Eigenschaft.
[assembly: AssemblyKeyFile("ITVisionsTestKey.snk")]
2.Verwenden Sie die Kommandozeilenoption /keyfile:
csc /t:library itv.infokomponente.cs /keyfile:ITVisionsTestKey.snk

Verzögertes Signieren

Es ist möglich, den Kompilierungsvorgang von dem Signierungsvorgang zu entkoppeln und in zwei getrennten Schritten auszuführen (Deplayed Signing).
csc /t:library itv.infokomponente.cs
al itv.infokomponente.dll /keyfile:ITVisionsTestKey.snk

Überprüfung

Ob eine Assembly signiert ist, können Sie wieder mit sn.exe verifizieren.
sn -v helloworld.exe