Assemblys in der Common Language Runtime (CLR)

Assemblys sind die Bausteine von .NET Framework-Anwendungen; sie bilden das Fundament für Bereitstellung, Versionskontrolle, Wiederverwendung, Gültigkeitsbereiche für die Aktivierung und Sicherheitsberechtigungen. Eine Assembly ist eine Auflistung von Typen und Ressourcen, die so erstellt wurden, dass sie zusammenarbeiten und eine logische funktionelle Einheit bilden. Eine Assembly stellt der Common Language Runtime die Informationen zur Verfügung, die sie zum Erkennen der Typimplementierungen benötigt. Für die Common Language Runtime sind Typen nur im Kontext einer Assembly vorhanden.

Eine Assembly führt die folgenden Funktionen aus:

  • Sie enthält Code, der von der Common Language Runtime ausgeführt wird. MSIL-Code (Microsoft Intermediate Language) in einer übertragbaren ausführbaren Datei (Portable Executable, PE) wird nicht ausgeführt, wenn diesem kein Assemblymanifest zugeordnet wurde. Beachten Sie, dass jede Assembly nur über einen Einstiegspunkt (DllMain, WinMain oder Main) verfügen kann.

  • Sie bildet eine Sicherheitsgrenze. Eine Assembly ist die Einheit, bei der Berechtigungen angefordert und erteilt werden. Weitere Informationen über Sicherheitsgrenzen bei Assemblys finden Sie unter Überlegungen zur Assemblysicherheit.

  • Sie bildet eine Typgrenze. Die Identität jedes Typs enthält den Namen der Assembly, in der dieser sich befindet. Wenn der Typ MyType in den Gültigkeitsbereich einer Assembly geladen wird, ist dieser nicht derselbe wie der Typ MyType, der in den Gültigkeitsbereich einer anderen Assembly geladen wurde.

  • Sie bildet eine Grenze für den Gültigkeitsbereich von Verweisen. Das Assemblymanifest enthält Assemblymetadaten, die für das Auflösen von Typen und die Bereitstellung angeforderter Ressourcen verwendet werden. Sie gibt die Typen und Ressourcen an, die außerhalb der Assembly verfügbar gemacht werden. Das Manifest listet außerdem andere Assemblys auf, von denen sie abhängig ist.

  • Sie bildet eine Versionsgrenze. Die Assembly ist die kleinste, in verschiedenen Versionen verwendbare Einheit in der Common Language Runtime. Alle Typen und Ressourcen in derselben Assembly bilden eine Einheit mit derselben Version. Das Assemblymanifest beschreibt die von Ihnen für abhängige Assemblys angegebenen Versionsabhängigkeiten. Weitere Informationen über die Versionen finden Sie unter Assemblyversionen.

  • Sie bildet eine Bereitstellungseinheit. Beim Starten einer Anwendung müssen nur die von der Anwendung zu Beginn aufgerufenen Assemblys vorhanden sein. Andere Assemblys, z. B. Lokalisierungsressourcen oder Assemblys mit Hilfsklassen, können bei Bedarf abgerufen werden. Dadurch ist die Anwendung beim ersten Herunterladen einfach und schlank. Weitere Informationen über die Bereitstellung von Assemblys finden Sie unter Bereitstellung von Anwendungen.

  • Sie stellt die Einheit dar, in der die parallele Ausführung unterstützt wird. Weitere Informationen über das Ausführen mehrerer Versionen einer Assembly finden Sie unter Assemblys und parallele Ausführung.

Assemblys können statisch oder dynamisch sein. Statische Assemblys können .NET Framework-Typen (Schnittstellen und Klassen) sowie Ressourcen für die Assembly (Bitmaps, JPEG-Dateien, Ressourcendateien usw.) enthalten. Statische Assemblys werden auf dem Datenträger in PE-Dateien (Portable Executable, übertragbare ausführbare Datei) gespeichert. Mit .NET Framework können Sie außerdem dynamische Assemblys erstellen, die direkt vom Arbeitsspeicher aus ausgeführt und vor der Ausführung nicht auf dem Datenträger gespeichert werden. Dynamische Assemblys können nach ihrer Ausführung auf dem Datenträger gespeichert werden.

Beim Erstellen von Assemblys stehen Ihnen verschiedene Möglichkeiten zur Verfügung: Um DLL-Dateien oder EXE-Dateien zu erstellen, verwenden Sie wie gewohnt Entwicklungstools, z. B. Visual Studio 2005. Mit den Tools von Windows Software Development Kit (SDK) können Sie Assemblys mit Modulen erstellen, die in anderen Entwicklungsumgebungen erzeugt wurden. Außerdem können Sie dynamische Assemblys auch mit Common Language Runtime-APIs wie Reflection.Emit erstellen.

Verwandte Themen

Titel

Beschreibung

Vorteile von Assemblys

Beschreibt, wie Assemblys beim Lösen von Versionsproblemen und DLL-Konflikten helfen.

Assemblyinhalte

Beschreibt die Elemente, aus denen die Assembly besteht.

Assemblymanifest

Beschreibt die Daten im Assemblymanifest und wie diese in Assemblys gespeichert werden.

Globaler Assemblycache

Beschreibt den globalen Assemblycache und dessen Verwendung mit Assemblys.

Assemblys mit starkem Namen

Beschreibt die Eigenschaften von Assemblys mit starken Namen.

Überlegungen zur Assemblysicherheit

Erörtert die Sicherheitsmechanismen von Assemblys.

Assemblyversionen

Bietet eine Übersicht über die Versionskontrollrichtlinien von .NET Framework.

Assemblypositionierung

Erörtert die Positionierung von Assemblys.

Assemblys und parallele Ausführung

Bietet eine Übersicht über das gleichzeitige Verwenden mehrerer Versionen der Laufzeit oder einer Assembly.

Programmieren mit Assemblys

Beschreibt das Erstellen, Signieren und Festlegen von Attributen für Assemblys.

Ausgeben von dynamischen Methoden und Assemblys

Beschreibt das Erstellen dynamischer Assemblys.

So sucht Common Language Runtime nach Assemblys

Beschreibt, wie .NET Framework zur Laufzeit Assemblyverweise auflöst.

Verweis

System.Reflection.Assembly