2009-09-30 75 views
6

我有一个在运行时编译C#代码的系统。我想将生成的程序集链接到系统本身。下面是我使用的一些示例代码:在运行时编译C#代码扩展

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

我想这样做也添加到主编译程序的引用一样,所以新编译的扩展可以使用库例程从编译器程序。

Assembly entryasm = Assembly.GetEntryAssembly(); 

所以问题是这样的:如何在编译后的汇编结果中添加对entryasm的引用?

回答

3

你试过吗?

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

这就是它!谢谢。 – Whiteknight 2009-09-30 15:14:11