使用CSharpCodeProvider类编译C#7.3时使用哪个C#编译器版本?
我想使用Microsoft.CSharp.CSharpCodeProvider类编译C#7.3代码。编译器版本在IDictionary中指定,该IDictionary在创建新的CSharpCodeProvider时作为输入;例如,{“CompilerVersion”,“v4.0”}。“v4.0”是不够的,因为它不将v7.3识别为编译器选项。较新的编译器版本不再作为.NET Framework的一部分提供,因此默认情况下无法通过旧版CodeDOM API(包括使用CSharpCodeProvider类编译C#7.3时使用哪个C#编译器版本?,c#,csharpcodeprovider,C#,Csharpcodeprovider,我想使用Microsoft.CSharp.CSharpCodeProvider类编译C#7.3代码。编译器版本在IDictionary中指定,该IDictionary在创建新的CSharpCodeProvider时作为输入;例如,{“CompilerVersion”,“v4.0”}。“v4.0”是不够的,因为它不将v7.3识别为编译器选项。较新的编译器版本不再作为.NET Framework的一部分提供,因此默认情况下无法通过旧版CodeDOM API(包括Microsoft.CSharp.CS
Microsoft.CSharp.CSharpCodeProvider
)进行访问
相反,如果希望在较新的编译器中使用CodeDOM API,则需要使用Microsoft.CodeDOM.Providers.DotNetCompilerPlatform.CSharpCodeProvider
,它是Microsoft.CSharp.CSharpCodeProvider
的子类。此类可在Microsoft.CodeDom.Providers.DotNetCompilerPlatform nuget包中找到
对于非web应用程序,您还需要提供一个配置或环境变量,该变量提供要使用的C#编译器的路径(nuget包中附带一个副本,因此您可以使用它)。有关详细信息,请参阅