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.
Die soeben beschriebenen Probleme können dadurch gelöst werden, dass ein einzelnes Build einer Komponentenassembly stärker mit der Clientanwendung verbunden wird. Dieses einzelne Build wird durch eine Kombination aus Versionsnummer und Spezialwert, der so genannten Ursprungskennung, angegeben. Das System kann diese Komponentenassemblies dann isolieren, so dass verschiedene Versionen gleichzeitig für verschiedene Clientanwendungen ausgeführt werden können. Dies war in der Vergangenheit nicht möglich. Dieses Schutzsystem wird manchmal parallele Ausführung genannt (im Gegensatz zur rückwärts kompatiblen Ausführung), da Anwendungen parallel zu anderen Versionen derselben Anwendungen ausgeführt werden können, ohne die jeweiligen Ausführungsumgebungen zu beeinflussen.
Der Code, anhand dessen das Hinzufügen dieser zusätzlichen Buildattribute und das Erstellen einer geschützten, gemeinsam nutzbaren Komponente beschrieben wird, ist im Unterverzeichnis 4_Shared gespeichert. Dieser Schritt basiert auf dem Code unter 3_SimplePath und fügt eine zweite, gemeinsam nutzbare Komponente hinzu, die ein Zeichenfolgenarray umkehrt.
Zunächst erstellen Sie diese neue Komponentenassembly, ohne eine der Optionen für die gemeinsame Nutzung anzugeben. Wenn Sie die neue Komponente Reverser.dll einfach kompilieren, z. B. mit BuildNoShare.bat (im Unterverzeichnis \4_Shared\), können Sie anschließend die Metadaten mit Ildasm.exe untersuchen. Sie sehen, dass die Assembly keine Ursprungskennung und keine feste Versionsnummer besitzt:
.assembly Reverser
{ ...
.hash algorithm 0x00008004
.ver 0:0:0:0
}
Eine Assembly wird als gemeinsam nutzbar definiert, indem Sie sie mit einem privaten Schlüssel kompilieren. (Öffentliche Schlüssel werden zur Überprüfung verwendet.) Bevor Sie mit dem Kompilieren beginnen, müssen Sie also ein öffentliches/privates Schlüsselpaar generieren. Verwenden Sie das Strong Name-Tool (Sn.exe), um ein neues Schlüsselpaar zu erstellen. Fügen Sie es in eine Datei (im Unterverzeichnis \4_Shared\Reverser) ein.
sn –k orgKey.snk
Nachdem Sie nun einen privaten Schlüssel besitzen, können Sie die Komponente kompilieren und die Schlüsseldatei sowie die zuzuweisende Versionsnummer angeben. Geben Sie dazu die Attribute AssemblyVersion und AssemblyKeyFile in der Datei Reverser.cs an. Verwenden Sie das STRONG-Symbol für die bedingte Kompilierung:
#if STRONG
[assembly: System.Reflection.AssemblyVersion("1.0.0.0")]
[assembly: System.Reflection.AssemblyKeyFile("orgKey.snk")]
#endif
Definieren Sie anschließend STRONG im Kompilierungsprozess:
csc.exe /define:STRONG ... Reverser.cs
Wenn Sie Ildasm.exe erneut für die Datei Reverser.dll ausführen, können Sie überprüfen, ob die Assembly nun gemeinsam nutzbar ist. Dies ist der Fall, wenn die Eigenschaften .publickey und .ver vorhanden sind, wobei die .ver-Eigenschaft nicht den Standardwert 1.0.0.0 aufweisen darf:
.assembly Reverser
{ ...
.publickey = (00 ... FC 4A DC 9B 9C)
.hash algorithm 0x00008004
.ver 1:0:0:0
}
Weitere Informationen zum Strong Name-Tool (SN.exe) finden Sie in diesem Lernprogramm unter dem Abschnitt Anhang B: Tools zum Verpacken und Weitergeben, der dieses Tool behandelt.
Siehe auch
Weitergeben von gemeinsam genutzten Komponenten | (5) Komponentenversionen | Zusammenfassung: Verpacken und Weitergeben von Anwendungen | Anhang A: Weitere Informationen zum Verpacken und Weitergeben | Anhang B: Tools zum Verpacken und Weitergeben