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

Nar*_*use 4 c# csharpcodeprovider

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

Kev*_*art 8

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

相反,如果您希望在较新的编译器中使用 CodeDOM API,您希望使用Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProviderwhich 是Microsoft.CSharp.CSharpCodeProvider. 此类在 Microsoft.CodeDom.Providers.DotNetCompilerPlatform nuget 包中可用。

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