Ich weiß, dass es ein Windows PE32 ist, aber ich weiß auch, dass die Bereitstellungseinheit in .NET eine Assembly ist, die wiederum ein Manifest enthält und aus mehreren verwalteten Modulen bestehen kann.Was ist ein .NET verwaltetes Modul?
Meine Fragen sind:
1) Wie würden Sie mehrere verwaltete Module zu erstellen, wenn ein Projekt wie eine Klasse lib oder eine Konsole app usw. Aufbau
2) Gibt es eine Möglichkeit, dies zu spezifizieren der Compiler (z. B. über die Projekteigenschaften), um Ihre Quellcodedateien in mehrere verwaltete Module zu partitionieren. Wenn ja, welchen Nutzen bringt das?
3) Können verwaltete Module Baugruppen überspannen?
4) Wird eine separate Datei auf der Festplatte erstellt, wenn der Quellcode kompiliert wird oder werden diese im Speicher erstellt und direkt in eine Assembly eingebettet?
EDIT:
@ Jon:
für 2): So ist die Erstellung/Gebäude Quelle in Visual Studio immer ein einzelnes verwaltetes Modul erstellen? Wenn dem so ist, verstehe ich nicht, warum VS dafür keinen Mechanismus bereitstellt, obwohl .NET dies unterstützt. Ich stimme zu, dass es nicht möglich wäre, eine Assembly mit Modulen aus verschiedenen Sprachen zu erstellen. Ist das der einzige Grund, warum .NET das Erstellen von Baugruppen mit mehreren Modulen ermöglicht? Ich habe in Richters CLR über C# gelesen, dass Module auch Assemblys umspannen können. Dies kann dazu beitragen, die Baugruppengröße zu reduzieren und den Speicherbedarf durch Herunterladen von Assemblys bei Bedarf zu reduzieren, wenn bestimmte Funktionen zum ersten Mal aufgerufen werden, aber ich bin nicht ganz sicher Warum sollte man ein Modul über Baugruppen hinweg aufteilen? Warum nicht einfach eine neue Baugruppe erstellen, die im Prozess ein neues Modul erstellt? Sie würden immer noch die gleichen Vorteile erhalten.
Punkt 4) war in Bezug auf ". Netmodul" Dateien. Als Teil des VS-Buildprozesses habe ich keine ".netmodule" -Dateien im obj-Verzeichnis erstellt. Ich habe in der Regel .pdb, .dll/.exe und eine * FileListAbsolute-Datei bemerkt und daher die Frage, ob separate Dateien für verwaltete Module erstellt werden.
EDIT: @ Jon: Hier ist der Auszug aus CLR via C# (3. Auflage) Pg 43: Vielleicht bin ich Verlesen aber es klingt für mich, dass ein Modul (die eine Datei zu einer Baugruppe gehör) kann auf Anfrage heruntergeladen werden.
„Zum Beispiel kann eine Anordnung von mehreren Typen bestehen. Sie die häufig verwendeten Typen in einer Datei setzen könnte und die weniger häufig verwendeten Typen in eine andere Datei. Wenn die Montage durch das Herunterladen es über das Internet bereitgestellt wird, Die Datei mit die selten verwendeten Typen müssen möglicherweise nie auf den Client heruntergeladen werden, wenn der Client niemals auf die Typen zugreift.Zum Beispiel könnte ein unabhängiger Softwarehersteller (ISV), der auf UI-Steuerelemente spezialisiert ist, Active Accessibility-Typen implementieren Ein separates Modul (bis erfüllt die Microsoft Logo-Anforderungen.) Nur Benutzer, die die zusätzlichen Funktionen benötigen, müssen dieses Modul herunterladen oaded.
Sie konfigurieren eine Anwendung zum Herunterladen von Baugruppendateien, indem Sie in der Konfigurationsdatei der Anwendung ein codeBase-Element (siehe Kapitel 3) angeben.Die Codebasis Element identifiziert eine URL, die auf das alle Der Dateien einer Baugruppe kann gefunden werden „
@ Jon: Danke für die Antwort. Ich habe nicht genug Zeichen, um meine Kommentare in diesen Bereich einzufügen, also habe ich sie zum ursprünglichen Beitrag hinzugefügt. Einblicke würden sehr geschätzt werden. –
@Jon: Du hast Recht. Das Buch sagt nicht, dass ein Modul Assemblies umfassen kann. Das habe ich falsch verstanden. aber es heißt, dass ein Modul bei Bedarf heruntergeladen werden kann. Ich habe den Auszug aus CLR über C# (3. Auflage) Pg 43 in den Originalbeitrag eingefügt. –