Könnten Sie bitte erklären, was eine Assembly in C # oder .NET ist?
- Wo beginnt es und wo endet es?
- Welche wichtigen Informationen sollte ich über Baugruppen wissen?
Könnten Sie bitte erklären, was eine Assembly in C # oder .NET ist?
Antworten:
Eine Assembly ist die kompilierte Ausgabe Ihres Codes, normalerweise eine DLL, aber Ihre EXE-Datei ist auch eine Assembly. Es ist die kleinste Bereitstellungseinheit für jedes .NET-Projekt.
Die Assembly enthält normalerweise .NET-Code in MSIL (Microsoft Intermediate Language), der bei der ersten Ausführung auf einem bestimmten Computer zu nativem Code ("JITted" - vom Just-In-Time-Compiler kompiliert) kompiliert wird. Dieser kompilierte Code wird auch in der Assembly gespeichert und bei nachfolgenden Aufrufen wiederverwendet.
Die Assembly kann auch Ressourcen wie Symbole, Bitmaps, Zeichenfolgentabellen usw. enthalten. Darüber hinaus enthält die Assembly auch Metadaten im Assemblymanifest - Informationen wie Versionsnummer, starker Name, Kultur, Assemblys, auf die verwiesen wird usw.
In 99% Ihrer Fälle entspricht eine Baugruppe einer physischen Datei auf der Festplatte - der Fall einer Baugruppe mit mehreren Dateien (eine Baugruppe, die auf mehr als eine einzelne Datei verteilt ist) scheint ein ziemlich seltsamer Fall zu sein Noch nie in meiner mehr als 5-jährigen .NET-Entwicklung angetroffen.
In einer Multifile-Assembly gibt es immer noch nur ein Assembly-Manifest in einer DLL oder EXE und den MSIL-Code in mehreren Netmodul-Dateien.
In Microsoft .NET Framework ist eine Assembly eine teilweise kompilierte Codebibliothek zur Verwendung bei Bereitstellung, Versionierung und Sicherheit.
http://www.codeguru.com/columns/csharp_learning/article.php/c5845
Eine Assembly ist eine Datei, die vom Compiler nach erfolgreicher Kompilierung jeder .NET-Anwendung automatisch generiert wird. Dies kann entweder eine Dynamic Link Library oder eine ausführbare Datei sein. Es wird nur einmal für eine Anwendung generiert und bei jeder nachfolgenden Kompilierung wird die Assembly aktualisiert.
Hier ist eine weitere Erklärung der Zusammensetzung von .NET-Baugruppen, ein Mini-Zitat:
Das .NET Framework besteht aus den Konzepten von Modulen und Assemblys, die sowohl Metadaten als auch Manifestinformationen speichern. Eine Baugruppe kann mehrere Module enthalten. Visual C # erstellt immer nur ein Modul, das vom C # -Compiler (csc.exe) in eine Assembly umgewandelt wird. Eine Assembly kann jedoch viele .NET-Module über das Befehlszeilentool Assembly Assemblyer (al.exe) miteinander verknüpfen. Zum Beispiel könnte jede Ihrer Quellcode-CS-Dateien zu einem Modul kompiliert und zu einer Assembly verknüpft werden - eine Assembly ist nur eine Sammlung von Modulen und Ressourcen. Eines dieser Module jedoch; muss Manifest-Metadaten (siehe unten) enthalten, damit die Assembly von der CLR verstanden wird.
....
Nachdem Sie in VS.NET eine neue EXE- oder DLL-Datei erstellt haben, wird Ihre Datei in Ihrem bin-Ordner angezeigt. Wenn Sie es im Editor öffnen, wird Kauderwelsch ausgegeben, oder sogar in einem hexadezimalen Editor, ohne die Struktur der Datei zu kennen. Sie benötigen ein Tool wie ildasm.exe oder den CFF-Explorer, um daraus einen Sinn zu machen. Die Struktur der Baugruppe ist wie folgt:PE-Header
CLR-Header
CLR-Metadaten
CLR
IL-Code
Native Daten
Die Antwort ist zum sofortigen Erfassen angebracht.
Einfach ausgedrückt handelt es sich um das kompilierte Projekt, an dem Ihre Klassen und gegebenenfalls zusätzliche Dateien beteiligt sind. Das heißt, jedes Projekt in einer Lösung ist eine Baugruppe .
Oder technisch gesehen,
In einer Baugruppe wird ein Typ im Flesystem gespeichert. Assemblies sind ein Mechanismus zum Bereitstellen von Code. Beispielsweise
System.Data.dll
enthält die Assembly Typen zum Verwalten von Daten. Um Typen in anderen Assemblys verwenden zu können, muss auf sie verwiesen werden. - Quelle
Woher wissen wir das? Wenn Sie sich die Eigenschaften eines Projekts unter der Lösung ansehen, sehen Sie die folgenden Bilder.
Wenn Sie das Projekt kompilieren, wird es zu DLL oder EXE .
Wenn ein Quellcode vom Sprachcompiler kompiliert wird, generiert er eine verwaltete Assembly und MSIL (MisroSoft Intermediate Language). Diese Assembly enthält eine DLL- oder EXE-Datei . Eine Assebmly kann von zwei Arten sein: Private Assembly und Shared Assembly . Shared Assembly wird im GAC (Global Assembly Cache) gespeichert, sodass jede Anwendung darauf verweisen kann, während Private Assembly im Anwendungsordner gespeichert wird, der nur von einer Anwendung verwendet werden kann.
Eine Assembly ist eine DLL oder eine EXE-Datei, die erstellt wird, wenn Sie sie veröffentlichen oder Ihre Anwendung kompilieren.
Eine Assembly ist eine Sammlung logischer Einheiten. Logische Einheiten beziehen sich auf die Typen und Ressourcen, die zum Erstellen und Bereitstellen einer Anwendung mithilfe des .NET-Frameworks erforderlich sind. Grundsätzlich ist Assembly eine Sammlung von Exe- und DLLs. Es ist portabel und ausführbar.
Nach dem Schreiben des Quellcodes Ihres Programms (Projekts) wird eine Datei erstellt, die je nach Projekt DLL oder EXE sein kann. Es macht nur einmal für ein einzelnes Projekt. Es gibt zwei Typen 1: - Single 2: - Shared oder Multiprogramm Single Assembly, die nur in einem einzigen Programm verwendet wird, während Shared für Multiprogramm verwendet werden kann