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