2009-05-19 9 views
1

Ich habe eine ausführende Assembly, die mit AssemblyBuilder dynamisch eine andere Assembly generiert.Verwenden von AssemblyBuilder, wie kann ich alle referenzierten Assemblies in die gespeicherte Assembly einbetten oder verknüpfen?

Die generierte Assembly besteht aus Funktionen, die einfach die Konstruktion bestimmter Klassen in der ausführenden Assembly testen. Da die Funktionen in den generierten Assembly-Referenzklassen in der ausführenden Assembly vorhanden sind, möchte ich die ausführende Assembly selbst in die Assembly einbetten, die sie erstellt.

Bisher konnte ich nur eine Assembly generieren, die mit der ausführenden Assembly verknüpft ist, aber keine, die sie einbettet. Es ist wichtig, dass ich nur eine letzte Assembly (.dll) habe.

Muss ich die Assembly als Ressource einbetten? Wenn das so ist, wie? Ich möchte Code nicht schreiben müssen, um die eingebettete Assembly dynamisch zu laden, es sei denn, das ist der einzige Weg. Ich suche nach etwas Einfachem wie AssemblyBuilder.EmbedAssembly (GetExecutingAssembly()).

Antwort

2

Es gibt keinen einfachen Weg. Sie haben mindestens zwei Möglichkeiten:

+0

Wie mache ich die erste Option? Ich möchte ILMerge nicht verwenden, aber ist das die erste Option, die ILMerge intern ausführt? – Triynko

+0

Ich habe Links zu den entsprechenden APIs hinzugefügt. Das ist nicht, was ILMerge tut. ILMerge erstellt wirklich eine Assembly aus einer Reihe anderer Assemblys. Die erste Lösung würde mehrere Baugruppen als Ressourcen in eine andere einbetten. –

+0

Wie kann ich einen Assembly Load Hook in eine nicht ausführbare DLL ausgeben, die nur eine einzige Klasse und einige Methoden hat? Ich bin mir auch nicht sicher, wie ich die referenzierte DLL als Ressource einbetten kann. – Triynko

Verwandte Themen