Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CSharpCodeProvider类编译C#7.3时使用哪个C#编译器版本?_C#_Csharpcodeprovider - Fatal编程技术网

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

使用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类编译C#7.3代码。编译器版本在IDictionary中指定,该IDictionary在创建新的CSharpCodeProvider时作为输入;例如,{“CompilerVersion”,“v4.0”}。“v4.0”是不够的,因为它不将v7.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包中附带一个副本,因此您可以使用它)。有关详细信息,请参阅