Assembly-CSharp.csproj中TargetFrameworkVersion修改无法保存的问题
解决Unity项目在VS Code中OmniSharp报错及TargetFrameworkVersion被自动还原的问题
一、修复OmniSharp项目加载失败
- 完全关闭VS Code和Unity编辑器
- 删除项目根目录下的
.vs、Library、obj、bin这几个缓存文件夹 - 重新启动Unity,等待它重新生成所有项目配置文件
- 再次打开VS Code,让OmniSharp重新加载项目,此时应该不会再出现
Attempted to update project that is not loaded的报错
二、让TargetFrameworkVersion修改生效,不再被Unity自动还原
Unity会根据自身项目设置自动覆盖csproj文件,直接修改文件无效,得从Unity配置入手:
- 在Unity编辑器顶部菜单,选择
Edit > Project Settings > Player - 在
Other Settings面板的Configuration区域,找到Api Compatibility Level选项 - 将其设置为
.NET Framework(对应你本地安装的4.8.1版本,部分Unity版本显示为.NET 4.x Equivalent),点击保存设置 - 回到Unity编辑器,选择
Assets > Open C# Project,触发Unity重新生成符合配置的csproj文件 - 此时打开VS Code查看
Assembly-CSharp.csproj,TargetFrameworkVersion应该已经更新为v4.8,且不会再被Unity自动改回4.7.1
三、额外排查项
- 确保VS Code的C#扩展和OmniSharp组件是最新版本
- 检查本地.NET Framework 4.8.1是否完整安装,可通过控制面板的「程序和功能」确认
- 若问题仍存在,在VS Code设置中搜索
OmniSharp: Use Modern Net,开启该选项,让OmniSharp适配新版.NET工具链
内容的提问来源于stack exchange,提问作者p4vl0
相关产品推荐
相关产品推荐

