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

问题描述 投票:0回答:2

我正在使用这个片段

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

适用于3.5编译器,用于动态代码编译。

我假设我应该使用

"v4.0"
切换到 4.0 编译器?

c# .net c#-4.0 csharpcodeprovider
2个回答
4
投票

确实是v4.0


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+ 编译解决方案。

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.