Training
Modul
Für ein Projekt in Dynamics 365 Business Central montieren - Training
Erfahren Sie, wie Sie für ein Projekt in Dynamics 365 Business Central montieren.
Dieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Assemblys bilden die Grundlage für die Bereitstellung, die Versionskontrolle, die Wiederverwendung, die Festlegung des Aktivierungsumfangs und die Sicherheitsberechtigungen für .NET-basierte Anwendungen. Eine Assembly ist eine Auflistung von Typen und Ressourcen, die so erstellt wurden, dass sie zusammenarbeiten und eine logische funktionelle Einheit bilden. Assemblys sind ausführbare Dateien ( .exe) oder Dynamic Link Library-Dateien ( .dll) und bilden die Bausteine von .NET-Anwendungen. Sie stellen der Common Language Runtime die Informationen zur Verfügung, die sie zum Erkennen der Typimplementierungen benötigt.
In .NET und .NET Framework können Sie eine Assembly entweder aus einer oder aus mehreren Quellcodedateien erstellen. In .NET Framework können Assemblys ein Modul oder mehrere Module umfassen. Dies macht es möglich, größere Projekte so zu planen, dass mehrere Entwickler an verschiedenen Quellcodedateien oder Modulen arbeiten, die anschließend in einer einzigen Assembly kombiniert werden. Weitere Informationen zu Modulen finden Sie unter Vorgehensweise: Erstellen einer Assembly aus mehreren Dateien.
Assemblys verfügen über folgende Eigenschaften:
Assemblys werden als EXE- oder DLL-Dateien implementiert.
Für Bibliotheken, die auf .NET Framework ausgerichtet sind, können Sie Assemblys für mehrere Anwendungen freigeben, indem Sie sie im globalen Assemblycache ablegen. Sie müssen den Assemblys starke Namen geben, bevor Sie sie zum globalen Assemblycache hinzufügen können. Weitere Informationen finden Sie unter Assemblys mit starken Namen.
Assemblys werden nur in den Arbeitsspeicher geladen, wenn sie erforderlich sind. Wenn sie nicht verwendet werden, werden sie auch nicht geladen. Dies bedeutet, dass Assemblys eine effiziente Möglichkeit zur Verwaltung von Ressourcen in größeren Projekten sein können.
Sie können mithilfe der Reflektion programmgesteuert Informationen zu einer Assembly abrufen. Weitere Informationen finden Sie unter Reflektion (C#) oder Reflektion (Visual Basic).
Sie können eine Assembly zu Untersuchungszwecken laden, indem Sie die Klasse MetadataLoadContext in .NET und .NET Framework verwenden. MetadataLoadContext ersetzt die Assembly.ReflectionOnlyLoad-Methoden.
Assemblys stellen der Common Language Runtime die Informationen zur Verfügung, die sie zum Erkennen von Typimplementierungen benötigt. Für die Common Language Runtime sind Typen nur im Kontext einer Assembly vorhanden.
Eine Assembly definiert die folgenden Informationen:
Code, der von der Common Language Runtime ausgeführt wird. Beachten Sie, dass jede Assembly nur über einen Einstiegspunkt (DllMain
, WinMain
oder Main
) verfügen kann.
Sicherheitsgrenze. Eine Assembly ist die Einheit, bei der Berechtigungen angefordert und erteilt werden. Weitere Informationen über Sicherheitsgrenzen in Assemblys finden Sie unter Überlegungen zur Assemblysicherheit.
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.
Grenzen für Gültigkeitsbereiche. Das Assemblymanifest enthält Metadaten, die für das Auflösen von Typen und die Bereitstellung angeforderter Ressourcen verwendet werden. Das Manifest gibt die Typen und Ressourcen an, die außerhalb der Assembly verfügbar gemacht werden sollen, und listet andere Assemblys auf, von denen es abhängig ist. MSIL-Code (Microsoft Intermediate Language) in einer übertragbaren ausführbaren Datei (Portable Executable, PE) wird nur ausgeführt, wenn diesem ein Assemblymanifest zugeordnet wurde.
Versionsgrenze. Die Assembly ist die kleinste versionierbare Einheit in der Common Language Runtime. Alle Typen und Ressourcen in derselben Assembly werden als eine Einheit versioniert. Das Assemblymanifest beschreibt die von Ihnen für abhängige Assemblys angegebenen Versionsabhängigkeiten. Weitere Informationen über die Versionsverwaltung finden Sie unter Assemblyversionsverwaltung.
Bereitstellungseinheit. Beim Starten einer Anwendung müssen nur die von der Anwendung zu Beginn aufgerufenen Assemblys vorhanden sein. Andere Assemblys, z. B. Assemblys mit Lokalisierungsressourcen oder Hilfsklassen, können bei Bedarf abgerufen werden. Dadurch ist die App beim ersten Herunterladen einfach und schlank. Weitere Informationen über die Bereitstellung von Assemblys finden Sie unter Bereitstellen von Anwendungen.
Einheit für die parallele Ausführung. 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 werden auf dem Datenträger in PE-Dateien (Portable Executable, übertragbare ausführbare Datei) gespeichert. Statische Assemblys können Schnittstellen, Klassen und Ressourcen wie Bitmaps, JPEG-Dateien und andere Ressourcendateien beinhalten. Sie können 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: Sie können Entwicklungstools wie Visual Studio verwenden, die DLL- und EXE-Dateien erstellen können. Mit den Tools im Windows SDK können Sie Assemblys mit Modulen erstellen, die in anderen Entwicklungsumgebungen erstellt wurden. Außerdem können Sie dynamische Assemblys auch mit Common Language Runtime-APIs wie System.Reflection.Emit erstellen.
Sie können Assemblys kompilieren, indem Sie sie in Visual Studio, über Tools für die .NET Core-Befehlszeilenschnittstelle oder .NET Framework-Assemblys mit einem Befehlszeilencompiler erstellen. Weitere Informationen zum Erstellen von Assemblys mit der .NET-CLI finden Sie unter Übersicht über die .NET-CLI.
Hinweis
Sie können eine Assembly in Visual Studio erstellen, indem Sie im Menü Build auf die Option Build klicken.
Jede Assembly enthält eine Assemblymanifestdatei. Ähnlich wie ein Inhaltsverzeichnis enthält das Assemblymanifest Folgendes:
Die Identität der Assembly (Name und Version).
Eine Dateitabelle, die alle anderen Dateien beschreibt, aus denen die Assembly besteht, z. B. weitere Assemblys, die Sie erstellt haben, von denen Ihre EXE- oder DLL-Datei abhängig ist, oder sogar Bitmap- oder Infodateien.
Eine Assemblyverweisliste, also eine Liste aller externen Abhängigkeiten, z. B. DLL-Dateien oder andere Dateien. Assemblyverweise enthalten Verweise auf globale und private Objekte. Globale Objekte stehen für alle weiteren Anwendungen zur Verfügung. In .NET Core werden globale Objekte an eine bestimmte .NET Core-Runtime gekoppelt. In .NET Framework befinden sich globale Objekte im globalen Assemblycache. System. IO. dll ist ein Beispiel für eine Assembly im globalen Assemblycache. Private Objekte müssen sich auf Verzeichnisebene oder unterhalb des Verzeichnisses befinden, in dem die App installiert ist.
Da Assemblys Informationen zu Inhalt, Versionsverwaltung und Abhängigkeiten enthalten, sind Anwendungen, die die Assemblys verwenden, nicht von externen Quellen wie der Registrierung auf Windows-Systemen abhängig, um ordnungsgemäß zu funktionieren. Assemblys reduzieren DLL-Konflikte, verbessern die Zuverlässigkeit und vereinfachen die Bereitstellung Ihrer Anwendungen. In vielen Fällen können Sie eine .NET-basierte Anwendung einfach durch Kopieren der Dateien auf den Zielcomputer installieren. Weitere Informationen finden Sie unter Assemblymanifest.
Damit Sie eine Assembly in einer Anwendung verwenden können, müssen Sie einen Verweis auf diese hinzufügen. Sobald auf eine Assembly verwiesen wird, sind alle zugänglichen Typen, Eigenschaften, Methoden und andere Member ihrer Namespaces für Ihre Anwendung verfügbar, als wäre ihr Code Teil der Quelldatei.
Hinweis
Die meisten Assemblys der .NET-Klassenbibliothek werden automatisch referenziert. Wenn nicht automatisch auf eine Systemassembly verwiesen wird, fügen Sie mit einer der folgenden Methoden einen Verweis hinzu:
-reference
für den C#- oder Visual Basic-Compiler.In C# können Sie zwei Versionen derselben Assembly in einer einzigen Anwendung verwenden. Weitere Informationen finden Sie unter extern-Alias.
Titel | Beschreibung |
---|---|
Assemblyinhalte | Elemente, aus denen die Assembly besteht |
Assemblymanifest | Die Daten im Assemblymanifest und wie diese in Assemblys gespeichert werden |
Globaler Assemblycache | Wie der globale Assemblycache Assemblys speichert und verwendet |
Assemblys mit starken Namen | Die Eigenschaften von Assemblys mit starken Namen |
Überlegungen zur Assemblysicherheit | Funktionsweise der Sicherheitsmechanismen von Assemblys |
Assemblyversionsverwaltung | Übersicht über die Versionsverwaltungsrichtlinie von .NET Framework |
Assemblypositionierung | Die Positionierung von Assemblys |
Assemblys und parallele Ausführung | Das gleichzeitige Verwenden mehrerer Versionen der Runtime oder einer Assembly |
Ausgeben von dynamischen Methoden und Assemblys | Erstellen von dynamischen Assemblys |
So sucht Common Language Runtime nach Assemblys | So löst .NET Framework zur Laufzeit Assemblyverweise auf |
Training
Modul
Für ein Projekt in Dynamics 365 Business Central montieren - Training
Erfahren Sie, wie Sie für ein Projekt in Dynamics 365 Business Central montieren.
Dokumentation
Beheben von Fehlern für falsche oder fehlende Assemblyverweise - C# reference
Diese Compilerfehler und -warnungen deuten auf falsche oder fehlende Assemblyverweise hin. Diese Fehler führen zu fehlenden oder falschen Definitionen für Typen in Ihrem Programm.
Weitere Informationen: Compilerfehler CS5001
Compilerfehler CS0518 - C# reference
Compilerfehler CS0518