添加空白Cshtml后运行项目遇Server Error,bin\roslyn\csc.exe损坏不可读
解决Roslyn csc.exe文件损坏导致的Web项目运行错误
我之前也碰到过完全一样的问题,添加空白Cshtml文件后触发了这个Win32Exception,核心就是bin\roslyn\csc.exe文件损坏或者无法正常读取。给你几个亲测有效的解决办法:
方案一:重新安装Roslyn相关NuGet包
这是最常见的修复方式,损坏的文件大概率是NuGet包下载或解压出了问题:
- 打开Visual Studio的NuGet包管理器控制台(路径:
Tools > NuGet Package Manager > Package Manager Console) - 先卸载现有包:
Uninstall-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform - 然后重新安装最新兼容版本:
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
重新安装后,NuGet会自动替换掉bin目录里损坏的Roslyn文件。
方案二:手动清理并重新生成Roslyn目录
有时候bin目录的缓存文件会出问题,手动清理更彻底:
- 先关闭Visual Studio,避免文件被占用
- 找到你的项目根目录,进入
bin文件夹,删除整个roslyn子目录 - 重新打开项目,右键解决方案选择清理解决方案,然后再选择生成解决方案
- 此时项目会重新从NuGet包源复制完整、正常的Roslyn文件到bin目录
方案三:检查权限与杀毒软件干扰
偶尔杀毒软件会误判Roslyn的编译工具为可疑文件,导致文件被损坏或锁定:
- 暂时关闭你的杀毒软件或安全防护工具
- 执行方案一或方案二的步骤,重新获取Roslyn文件
- 之后可以把
bin\roslyn目录添加到杀毒软件的信任列表里,避免再次被误处理
方案四:验证项目构建配置
极少数情况是项目配置错误导致文件无法正确加载:
- 右键项目 → 属性 → 切换到生成标签页
- 点击右下角的高级按钮,确认语言版本和你的.NET框架版本兼容(比如.NET Framework 4.7.2对应C# 7.3及以上)
- 检查项目的引用路径,确保没有指向无效或损坏的Roslyn文件
内容的提问来源于stack exchange,提问作者user9306199
相关产品推荐
相关产品推荐

