我知道一个名为AssemblyBuilder的类,我原本以为我可以用它来传递一个包含C#源文件的文件夹,或者将一个C#源文件传递给它,以便将源代码编译成一个程序集(。 dll)然后可以在配置文件中引用。
我知道可以编译C#的csc.exe,我正在寻找一种动态复制它的方法。
我无法弄清楚如何使用AssemblyBuilder,或者这是否是要使用的错误类,或者我是否应该执行类似于以下操作: http://support.microsoft.com/kb/304655
请你指出我正确的方向。
答案 0 :(得分:1)
您可能需要查看CodeDomProvider
示例摘录:
CompilerParameters parms = new CompilerParameters
{
GenerateExecutable = false,
GenerateInMemory = true,
IncludeDebugInformation = false
};
parms.ReferencedAssemblies.Add("System.dll");
parms.ReferencedAssemblies.Add("System.Data.dll");
CodeDomProvider compiler = CSharpCodeProvider.CreateProvider("CSharp");
return compiler.CompileAssemblyFromSource(parms, source);
警告:垃圾收集器不会处理以这种方式动态构建的程序集。