.NET 4.7.2环境下提示找不到编译器可执行文件csc.exe如何解决?
排查与解决步骤
- 修正编译器版本配置
你配置的CompilerVersion参数取值错误:v4.7.2是.NET Framework的运行时版本,不是编译器版本号,.NET Framework 4.x全版本(4.5~4.8)对应的CodeDom编译器版本统一标识为v4.0,修正代码如下:
Dictionary<string, string> providerOptions = new Dictionary<string, string>() { { "CompilerVersion", "v4.0" } };
- 确认.NET Framework 4.7.2 SDK已安装
.NET Framework运行时默认不包含csc.exe编译器,只有SDK会自带该文件。可以到控制面板-程序和功能中确认是否安装了.NET Framework 4.7.2 SDK,未安装的话补装即可。 - 检查系统环境变量配置
正常情况下4.0版本的csc.exe路径为C:\Windows\Microsoft.NET\Framework\v4.0.30319(32位系统)或C:\Windows\Microsoft.NET\Framework64\v4.0.30319(64位系统),请确认上述路径已添加到系统Path环境变量中。如果不想修改环境变量,也可以直接在编译器参数中指定csc.exe的完整路径。 - 检查Nuget包配置
如果项目引用了Microsoft.CodeDom.Providers.DotNetCompilerPlatform包使用Roslyn编译器,请确认包版本与.NET Framework 4.7.2兼容,且发布/运行时已经将bin目录下的roslyn文件夹一起部署,缺少该文件夹也会触发找不到csc.exe的报错。
内容的提问来源于stack exchange,提问作者bedayed
相关产品推荐
相关产品推荐

