Share via


Erstellen einer Mehrfachdateiassembly

Wenn Sie Mehrfachdateiassemblies erstellen möchten, müssen Sie auf einen Befehlszeilencompiler oder Visual Studio .NET mit Managed Extensions for C++ zurückgreifen. Eine Datei der Assembly muss das Assemblymanifest enthalten. Eine Assembly, die eine Anwendung startet, muss einen Einstiegspunkt enthalten, z. B. die Main-Methode oder die WinMain-Methode.

Nehmen Sie zum Beispiel an, dass eine Anwendung zwei Codemodule enthält, Client.cs und Stringer.cs. Letzteres erstellt den myStringer-Namespace, auf den der in Client.cs enthaltene Code verweist. Client.cs enthält die Main-Methode, die den Einstiegspunkt der Anwendung darstellt. In diesem Beispiel kompilieren Sie die beiden Codemodule und erstellen anschließend eine dritte Datei, die das Assemblymanifest zum Starten der Anwendung enthält. Das Assemblymanifest verweist sowohl auf das Client-Modul als auch auf das Stringer-Modul.

Hinweis   Mehrfachdateiassemblies können nur einen Einstiegspunkt aufweisen, selbst wenn die Assembly mehrere Codemodule umfasst.

Es gibt mehrere Gründe, eine Mehrfachdateiassembly zu erstellen:

  • Kombinieren von Modulen, die in verschiedenen Sprachen geschrieben wurden. Dies ist der häufigste Anlass für das Erstellen einer Mehrfachdateiassembly.

  • Optimieren des Downloadens einer Anwendung, indem selten verwendete Typen in einem Modul platziert werden, das nur bei Bedarf gedownloadet wird.

    Hinweis   Es ist wichtig, Mehrfachdateiassemblies einzusetzen, wenn Sie Anwendungen erstellen, die mit dem <object>-Tag von Microsoft Internet Explorer gedownloadet werden sollen. In diesem Szenario erstellen Sie eine von den Codemodulen unabhängige Datei, die nur das Assemblymanifest enthält. Internet Explorer downloadet zuerst das Assemblymanifest und erstellt anschließend Arbeitsthreads zum Downloaden aller weiteren benötigten Module und Assemblies. Während des Downloadens der Datei, die das Assemblymanifest enthält, reagiert Internet Explorer nicht auf Benutzereingaben. Je kleiner diese Datei ist, desto weniger Zeit nimmt dies in Anspruch.

  • Kombinieren von Codemodulen, die von verschiedenen Entwicklern geschrieben wurden. Jeder Entwickler kann im Prinzip jedes beliebige Codemodul in eine Assembly kompilieren. Dies kann jedoch dazu führen, dass einige Typen offen gelegt werden müssen, was verhindert werden kann, indem alle Module in einer Mehrfachdateiassembly untergebracht werden.

Nachdem Sie eine Assembly erstellt haben, können Sie die Datei signieren, die das Assemblymanifest (und somit die Assembly) enthält. Alternativ können Sie der Datei (und der Assembly) einen starken Namen geben und sie im globalen Assemblycache ablegen.

So erstellen Sie eine Mehrfachdateiassembly

  1. Kompilieren Sie alle Dateien mit Namespaces, auf die andere Module der Assembly verweisen, in Codemodule. .netmodule ist die Standarderweiterung für Codemodule. Beispiel: eine Datei namens Stringer erzeugt einen Namespace namens myStringer, auf den im Clientdateicode verwiesen wird. In diesem Falle sollte Stringer zuerst in ein Codemodul kompiliert werden.

  2. Kompilieren Sie alle weiteren Module unter Verwendung der erforderlichen Compileroptionen, um die anderen Module anzugeben, auf die im Code verwiesen wird.

  3. Erstellen Sie mit dem Assembly Linker-Tool (Al.exe) eine Ausgabedatei, die das Assemblymanifest enthält. In dieser Datei sind Referenzinformationen zu allen zur Assembly gehörenden Modulen und Ressourcen enthalten. Das Manifest kann als ausführbare Datei für die Anwendung fungieren.

    Hinweis   Visual Studio .NET für C# und Visual Basic kann nur zum Erstellen von Einfachdateiassemblies verwendet werden. Wenn Sie Mehrfachdateiassemblies erstellen möchten, müssen Sie auf einen Befehlszeilencompiler oder Visual Studio .NET mit Managed Extensions for C++ zurückgreifen.

Der folgende Abschnitt enthält ein Beispiel für eine Mehrfachdateiassembly, das diese drei Schritte veranschaulicht.

Siehe auch

Programmieren mit Assemblies