2009-09-30 11 views
6

Ich habe ein System, das C# -Code zur Laufzeit kompiliert. Ich möchte, dass die generierten Baugruppen mit dem System selbst verknüpft werden. Hier einige Beispiel-Code, ich verwende:Kompiliere C# -Code-Erweiterung zur Laufzeit

CSharpCodeProvider provider = new CSharpCodeProvider(new Dictionary<String, String> { { "CompilerVersion", "v3.5" } }); 
CompilerParameters compilerparams = new CompilerParameters(); 
compilerparams.GenerateExecutable = false; 
compilerparams.GenerateInMemory = true; 
foreach (string name in linkedreferences) 
    compilerparams.ReferencedAssemblies.Add(name + ".dll"); 
Assembly result = provider.CompileAssemblyFromFile(compilerparams, filename); 

Was möchte ich tun, ist auch ein Verweis auf die Haupt Compiler-Programm als auch hinzufügen, so dass die neu kompilierte Erweiterungsbibliothek Routinen aus dem Compiler-Programm verwenden können.

Die Frage ist also: Wie füge ich einen Verweis auf entryasm im kompilierten Assembly-Ergebnis hinzu?

Antwort

3

Haben Sie das versucht?

compilerparams.ReferencedAssemblies.Add(entryasm.Location); 
+0

Das war es genau! Vielen Dank. – Whiteknight

Verwandte Themen