Assemblys und der globale Assemblycache (C#)Assemblies and the Global Assembly Cache (C#)

Assemblys bilden die Grundlage für die Bereitstellung, die Versionskontrolle, die Wiederverwendung, die Festlegung des Aktivierungsumfangs und die Sicherheitsberechtigungen für eine .NET-basierte Anwendung.Assemblies form the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions for a .NET-based application. Assemblys sind ausführbare Dateien (EXE-Dateien) oder DLL-Dateien und bilden die Bausteine von .NET Framework.Assemblies take the form of an executable (.exe) file or dynamic link library (.dll) file, and are the building blocks of the .NET Framework. Sie stellen der Common Language Runtime die Informationen zur Verfügung, die sie zum Erkennen der Typimplementierungen benötigt.They provide the common language runtime with the information it needs to be aware of type implementations. Sie können sich eine Assembly als Sammlung von Typen und Ressourcen vorstellen, die eine logische Funktionalitätseinheit bilden und zusammenarbeiten.You can think of an assembly as a collection of types and resources that form a logical unit of functionality and are built to work together.

Assemblys können mindestens ein Modul enthalten.Assemblies can contain one or more modules. Beispiel: Größere Projekte können so geplant werden, dass verschiedene unabhängige Entwickler an verschiedenen Modulen arbeiten, die schließlich alle zusammen eine einzelne Assembly erstellen.For example, larger projects may be planned in such a way that several individual developers work on separate modules, all coming together to create a single assembly. Weitere Informationen zu Modulen finden Sie im Thema Gewusst wie: Erstellen einer Mehrfachdateiassembly.For more information about modules, see the topic How to: Build a Multifile Assembly.

Assemblys verfügen über folgende Eigenschaften:Assemblies have the following properties:

  • Assemblys werden als EXE- oder DLL-Dateien implementiert.Assemblies are implemented as .exe or .dll files.

  • Sie können eine Assembly zwischen Anwendungen teilen, indem Sie sie im globalen Assemblycache ablegen.You can share an assembly between applications by putting it in the global assembly cache. Assemblys müssen über einen starken Namen verfügen, bevor sie dem globalen Assemblycache hinzugefügt werden können.Assemblies must be strong-named before they can be included in the global assembly cache. Weitere Informationen finden Sie unter Assemblys mit starkem Namen.For more information, see Strong-Named Assemblies.

  • Assemblys werden nur in den Arbeitsspeicher geladen, wenn sie erforderlich sind.Assemblies are only loaded into memory if they are required. Wenn sie nicht verwendet werden, werden sie nicht geladen.If they are not used, they are not loaded. Dies bedeutet, dass Assemblys eine effiziente Möglichkeit zur Verwaltung von Ressourcen in größeren Projekten sein können.This means that assemblies can be an efficient way to manage resources in larger projects.

  • Sie können mithilfe der Reflektion programmgesteuert Informationen zu einer Assembly abrufen.You can programmatically obtain information about an assembly by using reflection. Weitere Informationen finden Sie unter Reflection (C#) (Reflexion (C#)).For more information, see Reflection (C#).

  • Wenn Sie eine Assembly nur zu Überprüfungszwecken laden möchten, verwenden Sie eine Methode wie z. B. ReflectionOnlyLoadFrom.If you want to load an assembly only to inspect it, use a method such as ReflectionOnlyLoadFrom.

AssemblymanifestAssembly Manifest

Jede Assembly enthält ein Assemblymanifest.Within every assembly is an assembly manifest. Ähnlich wie ein Inhaltsverzeichnis enthält das Assemblymanifest Folgendes:Similar to a table of contents, the assembly manifest contains the following:

  • Die Identität der Assembly (Name und Version).The assembly's identity (its name and version).

  • Eine Dateitabelle, die alle anderen Dateien beschreibt, aus denen die Assembly besteht, z.B. alle weiteren Assemblys, die Sie erstellt haben, auf denen Ihre EXE- oder DLL-Datei basiert, oder sogar Bitmap- oder Infodateien.A file table describing all the other files that make up the assembly, for example, any other assemblies you created that your .exe or .dll file relies on, or even bitmap or Readme files.

  • Eine Assemblyverweisliste, eine Liste aller externen Abhängigkeiten, z.B. DLL-Dateien oder andere Dateien, die Ihre Anwendung benötigt, die möglicherweise von einer anderen Person erstellt wurden.An assembly reference list, which is a list of all external dependencies—.dlls or other files your application needs that may have been created by someone else. Assemblyverweise enthalten Verweise auf globale und private Objekte.Assembly references contain references to both global and private objects. Globale Objekte befinden sich im globalen Assemblycache, einem Bereich, der auch anderen Anwendungen zur Verfügung steht.Global objects reside in the global assembly cache, an area available to other applications. Private Objekte müssen sich in einem Verzeichnis auf derselben Ebene oder unterhalb des Verzeichnisses befinden, in dem die Anwendung installiert ist.Private objects must be in a directory at either the same level as or below the directory in which your application is installed.

Da Assemblys Informationen zu Inhalt, Versionsverwaltung und Abhängigkeiten enthalten, sind die Anwendungen, die Sie mit C# erstellen, nicht von Windows-Registrierungswerten abhängig, damit sie ordnungsgemäß funktionieren.Because assemblies contain information about content, versioning, and dependencies, the applications you create with C# do not rely on Windows registry values to function properly. Assemblys reduzieren DLL-Konflikte, verbessern die Zuverlässigkeit und vereinfachen die Bereitstellung Ihrer Anwendungen.Assemblies reduce .dll conflicts and make your applications more reliable and easier to deploy. In vielen Fällen können Sie eine .NET-basierte Anwendung einfach durch Kopieren der Dateien auf den Zielcomputer installieren.In many cases, you can install a .NET-based application simply by copying its files to the target computer.

Weitere Informationen dazu finden Sie unter Assemblymanifest.For more information see Assembly Manifest.

Hinzufügen eines Verweises auf eine AssemblyAdding a Reference to an Assembly

Um eine Assembly zu verwenden, müssen Sie einen Verweis darauf hinzufügen.To use an assembly, you must add a reference to it. Als Nächstes verwenden Sie using directive (die Using-Direktive), um den Namespace der Elemente zu wählen, die Sie verwenden möchten.Next, you use the using directive to choose the namespace of the items you want to use. Sobald auf eine Assembly verwiesen wird und sie importiert wird, sind alle zugänglichen Klassen, Eigenschaften, Methoden und anderen Member ihrer Namespaces für Ihre Anwendung verfügbar, als wäre ihr Code Teil der Quelldatei.Once an assembly is referenced and imported, all the accessible classes, properties, methods, and other members of its namespaces are available to your application as if their code were part of your source file.

In C# können Sie auch zwei Versionen derselben Assembly in einer einzigen Anwendung verwenden.In C#, you can also use two versions of the same assembly in a single application. Weitere Informationen finden Sie unter extern-Alias.For more information, see extern alias.

Erstellen einer AssemblyCreating an Assembly

Kompilieren Sie Ihre Anwendung, indem Sie Build im Build-Menü anklicken, oder indem Sie sie durch eine Befehlszeile mithilfe des Befehlszeilencompilers erstellen.Compile your application by clicking Build on the Build menu or by building it from the command line using the command-line compiler. Weitere Informationen zum Erstellen von Assemblys über die Befehlszeile finden Sie unter Command-line Building With csc.exe (Erstellen von Befehlszeilen mit „csc.exe“).For details about building assemblies from the command line, see Command-line Building With csc.exe.

Hinweis

Sie erstellen eine Assembly in Visual Studio, indem Sie im Menü Build die Option Build wählen.To build an assembly in Visual Studio, on the Build menu choose Build.

Siehe auchSee Also

C#-ProgrammierhandbuchC# Programming Guide
Assemblys in der Common Language Runtime (CLR)Assemblies in the Common Language Runtime
Friend-Assemblys (C#)Friend Assemblies (C#)
Vorgehensweise: Freigeben einer Assembly für andere Anwendungen (C#)How to: Share an Assembly with Other Applications (C#)
Vorgehensweise: Laden und Entladen von Assemblys (C#)How to: Load and Unload Assemblies (C#)
Vorgehensweise: Bestimmen, ob eine Datei eine Assembly ist (C#)How to: Determine If a File Is an Assembly (C#)
Vorgehensweise: Erstellen und Verwenden von Assemblys über die Befehlszeile (C#)How to: Create and Use Assemblies Using the Command Line (C#)
Exemplarische Vorgehensweise: Einbetten von Typen aus verwalteten Assemblys in Visual Studio (C#)Walkthrough: Embedding Types from Managed Assemblies in Visual Studio (C#)
Walkthrough: Embedding Type Information from Microsoft Office Assemblies in Visual Studio (C#) (Exemplarische Vorgehensweise: Einbetten von Typinformationen aus Microsoft Office-Assemblys in Visual Studio (C#))Walkthrough: Embedding Type Information from Microsoft Office Assemblies in Visual Studio (C#)