Assemblys und der globale Assemblycache (C# und Visual Basic)

Assemblys stellen die grundlegende Einheit für Bereitstellung, Versionskontrolle, Wiederverwendung, Aktivierungsscoping und Sicherheitsberechtigungen in einer .NET-basierten Anwendung dar. Assemblys sind ausführbare Dateien (.exe) oder Dynamic Link Library-Dateien (.dll) und bilden die Bausteine von .NET Framework. Sie liefern der Common Language Runtime die zum Erkennen der Typimplementierungen notwendigen Informationen. Sie können sich eine Assembly als Auflistung von Typen und Ressourcen vorstellen, die eine logische Funktionalitätseinheit bilden und für ein Zusammenwirken konzipiert sind.

Assemblys können eines oder mehrere Module enthalten. Größere Projekte können zum Beispiel so geplant werden, dass verschiedene unabhängige Entwickler verschiedene Module bearbeiten, die schließlich alle zu einer einzigen Assembly zusammengesetzt werden. Weitere Informationen zu Modulen finden Sie unter dem Thema Gewusst wie: Erstellen einer Mehrfachdateiassembly.

Assemblys verfügen über folgende Eigenschaften:

  • Assemblys werden als EXE-Datei oder als DLL implementiert.

  • Sie können eine Assembly in verschiedenen Anwendungen gemeinsam verwenden, indem Sie die Assembly in den globalen Assemblycache einfügen. Assemblys müssen über einen starken Namen verfügen, damit sie dem globalen Assemblycache hinzugefügt werden können. Weitere Informationen finden Sie unter Assemblys mit starkem Namen.

  • Assemblys werden nur in den Arbeitsspeicher geladen, wenn sie tatsächlich benötigt werden. Wenn sie nicht verwendet werden, werden sie nicht geladen. Dies bedeutet, dass Assemblys eine effiziente Möglichkeit der Ressourcenverwaltung in größeren Projekten darstellen.

  • Mit einer Reflektion können Sie programmgesteuert Informationen zu einer Assembly abrufen. Weitere Informationen finden Sie unter Reflektion.

  • Wenn Sie eine Assembly lediglich zu Überprüfungszwecken laden möchten, können Sie eine Methode wie ReflectionOnlyLoadFrom verwenden.

Assemblymanifest

Jede Assembly enthält ein Assemblymanifest. Das Assemblymanifest ist mit einem Inhaltsverzeichnis vergleichbar und enthält Folgendes:

  • Die Identität der Assembly (Name und Version).

  • Eine Dateitabelle, in der die übrigen Dateien beschrieben werden, aus denen die Assembly besteht. Dazu gehören z. B. weitere von Ihnen erstellte Assemblys, auf denen die EXE- oder DLL-Datei beruht, und sogar Bitmap- sowie Infodateien.

  • Eine Assemblyverweisliste, d. h. eine Liste aller externen Abhängigkeiten – DLLs oder andere von der Anwendung benötigte Dateien, die nicht von Ihnen selbst erstellt wurden. Assemblyverweise enthalten Verweise auf globale und private Objekte. Globale Objekte werden im globalen Assemblycache abgelegt, einem für andere Anwendungen verfügbaren Bereich, vergleichbar mit dem System32-Verzeichnis. Der Microsoft.VisualBasic-Namespace ist ein Beispiel für eine Assembly im globalen Assemblycache. Private Objekte müssen sich in einem Verzeichnis auf gleicher Ebene oder unterhalb des Verzeichnisses befinden, in dem die Anwendung installiert ist.

Da Assemblys Informationen über Inhalt, Versionserstellung und Abhängigkeiten enthalten, hängt die ordnungsgemäße Funktion der in Visual Basic bzw. Visual C# erstellten Anwendungen nicht von Registrierungswerten ab. Assemblys verringern DLL-Konflikte, machen die Anwendungen zuverlässiger und vereinfachen die Bereitstellung. Häufig wird eine .NET-basierte Anwendung einfach durch Kopieren der Anwendungsdateien auf den Zielcomputer installiert.

Weitere Informationen finden Sie unter Assemblymanifest.

Hinzufügen eines Verweises zu einer Assembly

Zur Verwendung einer Assembly müssen Sie entsprechend den Erläuterungen unter Gewusst wie: Hinzufügen oder Entfernen von Verweisen in Visual Studio einen Verweis auf die Assembly hinzufügen. Anschließend wählen Sie mit der Imports-Anweisung (Visual Basic) bzw. mit der using-Direktive (C#) den Namespace der Elemente, die verwendet werden sollen. Sobald auf eine Assembly verwiesen wird und die Assembly importiert ist, stehen alle verwendbaren Klassen, Eigenschaften, Methoden und anderen Member ihrer Namespaces der Anwendung so zur Verfügung, als wäre ihr Code Teil der von Ihnen erstellten Quelldatei.

In C# können Sie auch zwei Versionen einer Assembly in einer einzelnen Anwendung verwenden. Weitere Informationen finden Sie unter extern-Alias.

Erstellen einer Assembly

Kompilieren Sie die Anwendung. Klicken Sie dazu im Menü Erstellen auf Erstellen, oder erstellen Sie sie mit dem Befehlszeilencompiler von der Befehlszeile aus. Einzelheiten zum Erstellen von Assemblys über die Befehlszeile finden Sie unter Erstellen von der Befehlszeile aus (Visual Basic) (Visual Basic) bzw. unter Erstellen über die Befehlszeile mit csc.exe (C#).

Siehe auch

Aufgaben

Gewusst wie: Freigeben einer Assembly für andere Anwendungen (C# und Visual Basic)

Gewusst wie: Laden und Entladen von Assemblys (C# und Visual Basic)

Gewusst wie: Bestimmen, ob eine Datei eine Assembly ist (C# und Visual Basic)

Gewusst wie: Erstellen und Verwenden von Assemblys über die Befehlszeile (C# und Visual Basic)

Exemplarische Vorgehensweise: Einbetten von Typen aus verwalteten Assemblys (C# und Visual Basic)

Referenz

Friend-Assemblys (C# und Visual Basic)

Konzepte

C#-Programmierhandbuch

Assemblys in der Common Language Runtime (CLR)

Weitere Ressourcen

Visual Basic-Programmierhandbuch

Exemplarische Vorgehensweise: Einbetten von Typinformationen aus Microsoft Office-Assemblys (C# und Visual Basic)