2009-09-30 36 views
6

Mam system, który kompiluje kod C# w czasie wykonywania. Chciałbym, aby wygenerowane zespoły były połączone z samym systemem. Oto niektóre przykładowy kod, który używam:Skompiluj rozszerzenie kodu C# w czasie wykonywania

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); 

Co chciałbym zrobić to również dodać odwołanie do programu głównego kompilatora, tak więc nowo skompilowane rozszerzenie może korzystać z procedury biblioteczne z programu kompilatora.

Assembly entryasm = Assembly.GetEntryAssembly(); 

Pytanie brzmi następująco: w jaki sposób dodać odniesienie do zakrzywienia w skompilowanym wyniku montażu?

Odpowiedz

3

Czy próbowałeś tego?

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

To było dokładnie! Dzięki. – Whiteknight

Powiązane problemy