2009-08-27 3 views
6

ich meine Komponenten/Baugruppen möchte eindeutig aus einer Quellcode Sicht getrennt halten, aber ich brauche auch unter bestimmten Umständen (wahrscheinlich zu erweitern nicht relevant), um sie in der gleichen DLL zu verpacken.Gibt es eine Möglichkeit, mehr als eine .NET-Assembly in einer DLL zu packen?

Ist es möglich, eine Reihe von .NET-Assemblies in einer einzigen DLL zu verpacken? Wenn das so ist, wie?

wenn möglich, halten Sie es für eine gute Idee ist? Warum?

Jede Hilfe dankbar!

Antwort

9

Schauen Sie sich diesen Artikel: Merging .NET assemblies using ILMerge


Wie Sie wissen, traditionelle Verknüpfung von Objektcode ist nicht mehr notwendig, in .NET. Ein .NET-Programm besteht normalerweise aus mehreren Teilen: . Eine typische .NET-Anwendung besteht aus einer ausführbaren Assembly , einigen Assemblies im Programmverzeichnis und einigen Assemblys im globalen Assembly Cache. Wenn das Programm ausgeführt wird, kombiniert die Laufzeit alle diese Teile mit einem Programm. Zur Kompilierungszeit ist kein mehr nötig.

Aber manchmal ist es dennoch nützlich, alle Teile zu kombinieren, die ein Programm in einer einzigen Assembly ausführen muss. Sie können beispielsweise die Implementierung Ihrer -Anwendung vereinfachen, indem Sie das Programm alle erforderlichen Bibliotheken und alle -Ressourcen in einer einzigen EXE-Datei kombinieren.

csc /target:library /out:ClassLibrary1.dll ClassLibrary1.cs 
vbc /target:library /out:ClassLibrary2.dll ClassLibrary2.vb 
vbc /target:winexe /out:Program.exe 
    /reference:ClassLibrary1.dll,ClassLibrary2.dll Program.vb 

.

ilmerge /target:winexe /out:SelfContainedProgram.exe 
     Program.exe ClassLibrary1.dll ClassLibrary2.dll 
+0

Aber das erzeugt eine EXE-Datei, keine DLL (?) –

+1

gleiche Sache sollte mit einer DLL als Ausgabe machbar sein - ich denke ... – JohnIdol

6

ILMerge können zwei Baugruppen zu einer zusammenführen.

Siehe here Informationen (die Beispiele für Quer Sprache sind, aber es wird die Baugruppen, was Werkzeuge arbeiten gebaut).

Offensichtlich keine Abhängigkeiten von den einzelnen Baugruppen (Pre-merge) müssen umgeleitet aktualisiert/werden.

Verwandte Themen