Windows C#窗体应用编译报错MSB6003:无法加载指定程序集求助
嘿,我之前维护旧项目时也碰到过一模一样的Roslyn编译报错,给你几个亲测有效的解决思路,按顺序试试应该能搞定:
修复Visual Studio 2017组件
这个报错大概率是Roslyn编译组件(也就是csc.exe相关的依赖)损坏或者缺失了。打开Visual Studio Installer,找到你的VS2017 Community实例,点击「修改」,然后选择「修复」选项。等待修复完成后重启VS,很多时候这类组件问题都能直接解决。检查并更新.NET Framework版本
报错里提到的System.IO.FileSystem, Version=4.0.1.0是.NET Framework的核心类库。你可以打开控制面板的「程序和功能」,找到已安装的.NET Framework版本,确保安装了4.7.2及以上的稳定版本(VS2017推荐适配的最低版本),如果版本过低或者缺失相关更新,建议手动下载安装对应版本的.NET Framework。清理项目缓存并重建
项目的bin/obj缓存文件有时候会导致各种奇怪的编译问题:- 完全关闭VS,找到你的项目目录,删除
bin和obj两个文件夹 - 重新打开VS,加载项目后先执行「清理解决方案」,再执行「生成解决方案」
- 完全关闭VS,找到你的项目目录,删除
检查项目目标框架设置
右键你的C#窗体项目,选择「属性」→「应用程序」,确认目标框架是不是和之前编译正常时一致。如果不小心把目标框架改成了更低的版本,可能会出现依赖程序集找不到的情况,改回原来的目标框架再试试编译。应急方案:手动复制缺失的程序集
如果上面的方法都没用,你可以从另一台正常运行VS2017的机器上,找到版本为4.0.1.0的System.IO.FileSystem.dll,复制到你的VS安装目录下的D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Roslyn\文件夹里。不过这个方法是临时应急的,优先推荐前面的修复方案。
内容的提问来源于stack exchange,提问作者OSamuelHAlmeida

