目前,我有一些正在动态生成的代码。换句话说,该程序将动态创建一个C#.cs文件,其目的是将该C#文件包含在另一个项目中。
挑战在于,我想生成一个.DLL文件而不是生成一个C#.cs文件,这样它就可以被任何一种.NET应用程序(不仅是C#)引用,因此更加有用。
using System.CodeDom.Compiler; using System.Diagnostics; using Microsoft.CSharp; CSharpCodeProvider codeProvider = new CSharpCodeProvider(); ICodeCompiler icc = codeProvider.CreateCompiler(); System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters(); parameters.GenerateExecutable = false; parameters.OutputAssembly = "AutoGen.dll"; CompilerResults results = icc.CompileAssemblyFromSource(parameters, yourCodeAsString);
改编自http://support.microsoft.com/kb/304655