代码之家  ›  专栏  ›  技术社区  ›  scope_creep

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

  •  8
  • scope_creep  · 技术社区  · 15 年前

    我在用这个片段

    CSharpCodeProvider codeProvider =
       new  CSharpCodeProvider(
          new Dictionary<String, String> { { "CompilerVersion", "v3.5" } });
    

    用于动态代码编译的3.5编译器。

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

    2 回复  |  直到 11 年前
        1
  •  4
  •   scope_creep    15 年前

    它确实是4.0版

        2
  •  4
  •   Jorge Peña    11 年前

    除了指定“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");
    

    不要忘记使用框架4.0+编译解决方案。

    我希望这有帮助。