2010-11-21 5 views
1

In meinem Buch "Pro C# 2008 und die .NET 3.5-Plattform" gibt es eine Textzeile, die mich im Kontext von Single-File-Assemblies verwirrt..NET Single File Assembly Erläuterung

in einer großen Zahl von Fällen, gibt es eine einfache Eins-zu-Eins-Entsprechung zwischen einer .NET-Baugruppe und der Binärdatei (* DLL- oder exe). Wenn Sie also eine .NET * .dll-Datei erstellen, können Sie sicher sein, dass die Binärdatei und die Assembly identisch sind. Ebenso, wenn Sie eine ausführbare Desktop-Anwendung erstellen, können Sie die * .exe einfach als Baugruppe bezeichnet werden selbst

-Pro C# 2008 und .NET 3.5-Plattform, Andrew Troelsen

Der erste Satz des Zitats verwirrte mein Denken. Ich verstehe eine .NET-Einzeldatei-Assembly als logische Gruppierung von einem oder mehreren verwandten Modulen, die ursprünglich als eine Einheit implementiert und versioniert werden sollen. Enthält in dieser Assembly Windows/CLR-Header, geben Sie Metadaten, kompilierte CIL und ein Assemblymanifest ein.

Im Rahmen der einzelnen Datei Baugruppen, nicht ich zu verstehen, was durch eine „Eins-zu-Eins-Entsprechung zwischen einer .NET-Assembly und die Binärdatei (* .dll oder * .exe) gemeint ist.

?

Könnte jemand bitte das Zitat oben angegebenen

Antwort

0

Dies ist nur eine Frage der defintion klären Jede Baugruppe, die in einem einzigen binären enthalten ist, kann eine einzelne Datei Baugruppe aufgerufen werden

einfach gesagt -.. eine Baugruppe sein kann in einer oder mehreren Binärdateien enthalten Eine Assembly, die sich in einer einzelnen Binärdatei befindet, ist eine einzelne Dateiassembly.

-foredecker

0

Ich habe noch nie eine Assembly mehrere dll oder exe-Dateien gesehen. Sie können ILmerge jedoch verwenden, um mehrere Assemblies zu einer einzigen Binärdatei zu kombinieren. Im Allgemeinen wird eine Assembly-DLL pro Namespace angezeigt.

3

Es ist ein sucky Kommentar, vom Autor entworfen, um seinen Arsch zu decken. Aber sinnlos, wenn er nicht erklärt, was es bedeutet. Ihr mentales Modell zur Funktionsweise von Visual Studio ist intakt, ein Projekt erstellt eine Assembly.

Aber wie Sie vermuten, hat die CLR diese Anforderung nicht. Eine Baugruppe kann aus mehreren Modulen aufgebaut werden. Die wichtigsten Bestandteile sind die Option/target: module für den C# -Compiler und das al.exe-Tool zum Verknüpfen der Module in einer Assembly. Diese Optionen sind für Microsoft sehr wichtig. Auf diese Weise werden Kern-Assemblys wie mscorlib.dll erstellt. Die Seele des Maschinengewirrs, du solltest niemals so weit gehen müssen.

0

Ich denke, was er bezieht sich darauf, dass ein "Website-Projekt" einzelnen Code hinter Dateien in einzelne Binärdateien kompiliert, aber sie werden als Teil der gleichen "Assembly" betrachtet. Sie können diese Dateien im temporären Speicherort unter Windows \ Microsoft .net Framework

sehen