重装Win11后VS Code Omnisharp重启报错,CodeLens失效求助
问题描述
重装Windows 11后,安装Unity、VS Code及官方MS C#扩展后,Unity脚本的CodeLens完全失效(无法显示引用、右键"转到定义"功能不可用)。尝试了禁用其他扩展、重装VS Code、更换版本、清除用户配置、安装.NET包等方案均无效。关闭Omnisharp: Use Modern Net后,OmniSharp启动报错:
Starting OmniSharp server at 2/20/2023, 3:13:09 PM Target: c:\gamedev\unity-projects\CubeWorld\CubeWorld.sln OmniSharp server started. Path: c:\Users\vasya\.vscode\extensions\ms-dotnettools.csharp-1.25.4-win32-x64\.omnisharp\1.39.4\OmniSharp.exe PID: 14996 [STDERR] Could not locate MSBuild instance to register with OmniSharp. [ERROR] Error: OmniSharp server load timed out. Use the 'omnisharp.projectLoadTimeout' setting to override the default delay (one minute).
解决方案
1. 确认Unity依赖的.NET版本
打开Unity项目,进入Edit > Project Settings > Player > Other Settings > Configuration,查看Api Compatibility Level,记录对应的.NET版本(例如.NET 6、.NET Framework 4.x)。
2. 安装对应版本的.NET SDK(含MSBuild)
- 下载与Unity匹配的x64版本的.NET开发包:
- 若使用
.NET Framework,安装对应版本的.NET Framework Developer Pack(内置MSBuild); - 若使用现代.NET(如.NET 6/7),安装对应版本的.NET SDK。
- 若使用
- 安装完成后,将MSBuild路径添加到系统环境变量
PATH:- 现代.NET的MSBuild路径:
C:\Program Files\dotnet\sdk\[你的版本号]\MSBuild\Current\Bin; - .NET Framework的MSBuild路径:
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin(需先安装VS Build Tools)。
- 现代.NET的MSBuild路径:
3. 配置VS Code的OmniSharp设置
- 打开VS Code设置(快捷键
Ctrl+,),搜索Omnisharp: Use Modern Net,确保该选项开启(现代.NET环境下,此选项是OmniSharp识别MSBuild的关键); - 若仍无法识别MSBuild,搜索
omnisharp.msbuild.path,手动指定你的MSBuild.exe路径(例如C:\Program Files\dotnet\sdk\6.0.406\MSBuild\Current\Bin\MSBuild.exe)。
4. 重新生成Unity项目解决方案
- 在Unity编辑器中,点击
Assets > Open C# Project,让Unity重新生成.sln和.csproj文件; - 关闭VS Code,重新打开生成的解决方案,等待OmniSharp完成加载。
5. 验证MSBuild环境
打开命令提示符(CMD),输入:
msbuild -version
若能正常输出版本号,说明MSBuild环境配置正确;若报错,检查环境变量PATH是否配置正确,重启电脑后再试。
6. 更新VS Code C#扩展
打开VS Code扩展面板,找到**MS C#**扩展,确保安装的是最新版本,旧版本可能存在兼容性问题。
内容的提问来源于stack exchange,提问作者Cnfnbcn
相关产品推荐
相关产品推荐

