如何使用CSharpCodeProvider类运行C# 4.0编译器?

8
我正在使用这段代码片段。
CSharpCodeProvider codeProvider =
   new  CSharpCodeProvider(
      new Dictionary<String, String> { { "CompilerVersion", "v3.5" } });

针对动态代码编译,建议使用3.5编译器。

我理解应该使用"v4.0"切换到4.0编译器?

2个回答

4
除了指定“v4.0”之外,您还需要添加引用“Microsoft.CSharp.dll”才能使用“dynamic”关键字。
var codeProvider = new Microsoft.CSharp.CSharpCodeProvider(
new Dictionary<string, string> { { "CompilerVersion", "v4.0" } });
var parameters = new System.CodeDom.Compiler.CompilerParameters 
{
    GenerateInMemory = true,
    GenerateExecutable = false,
    IncludeDebugInformation = true,
    TreatWarningsAsErrors = false
};
// Here add more referenced assemblies
parameters.ReferencedAssemblies.Add("Microsoft.CSharp.dll");

请不要忘记使用Framework 4.0+编译解决方案。
希望这能帮到你。

4

确实是v4.0版本


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接