Übersicht über Assemblys

Aktualisiert: November 2007

Assemblys sind ein grundlegender Teil der Programmierung mit .NET Framework. 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 MeinTyp in den Gültigkeitsbereich einer Assembly geladen wird, ist dieser nicht derselbe wie der Typ MeinTyp, 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.

Siehe auch

Konzepte

Überlegungen zur Assemblysicherheit

Assemblyversionen

Assemblys und parallele Ausführung

Weitere Ressourcen

Assemblys in der Common Language Runtime (CLR)

Bereitstellen von .NET Framework-Anwendungen