最近研究CodeDomProvider,但是编译linq时总是报错,编译决是不过,后来在国外的网站找到了原来CodeDomProvider是有版本的,代码如下: // 创建编译器对象 CodeDomProvider p = new CSharpCodeProvider( new Dictionary < string , string > () { { "CompilerVersion", "v3.5" } } ); // CodeDomProvider.CreateProvider("CSharp"); // ICodeCompiler cc = p.CreateCompiler(); // 设置编译参数 CompilerParameters options = new CompilerParameters(); options.IncludeDebugInformation = true ; options.ReferencedAssemblies.Add( " System.dll " ); options.ReferencedAssemblies.Add( @" C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll " ); options.ReferencedAssemblies.Add( " System.Data.dll " ); options.ReferencedAssemblies.Add( @" C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.DataSetExtensions.dll " ); options.ReferencedAssemblies.Add( " System.Deployment.dll " ); options.ReferencedAssemblies.Add( " System.Xml.dll " ); options.ReferencedAssemblies.Add( @" C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Xml.Linq.dll " ); options.ReferencedAssemblies.Add( " System.Drawing.dll " ); options.ReferencedAssemblies.Add( " System.Windows.Forms.dll " ); options.GenerateInMemory = true ; options.OutputAssembly = " MyTest " ; // 开始编译 // CodeSnippetCompileUnit cu = new CodeSnippetCompileUnit(code); CompilerResults cr = p.CompileAssemblyFromFile(options, code); 转载于:https://www.cnblogs.com/xuemingfeng/archive/2008/07/13/1241993.html