哪个C#编译器版本用CSharpCodeProvider类编译C#7.3?

时间:2018-05-08 19:28:19

标签: c# csharpcodeprovider

我想使用Microsoft.CSharp.CSharpCodeProvider类来编译C#7.3代码。编译器版本在IDictionary中指定,在创建新的CSharpCodeProvider时将其作为输入;例如,{“CompilerVersion”,“v4.0”}。 “v4.0”是不够的,因为它不能将v7.3识别为编译器选项。

1 个答案:

答案 0 :(得分:3)

较新的编译器版本不再作为.NET Framework的一部分提供,因此默认情况下不能通过旧版CodeDOM API(包括Microsoft.CSharp.CSharpCodeProvider)进行访问。

相反,如果您希望将CodeDOM API与较新的编译器一起使用,则需要使用Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider,它是Microsoft.CSharp.CSharpCodeProvider的子类。此类可在Microsoft.CodeDom.Providers.DotNetCompilerPlatform nuget包中找到。

对于非Web应用程序,您还需要提供一个配置或环境变量,该变量提供了您要使用的C#编译器的路径(一个副本在nuget包中提供,因此您可以使用它)。有关详细信息,请参阅https://github.com/aspnet/RoslynCodeDomProvider