VS Code中C#扩展OmniSharp命令失效问题求助
问题:VS Code C#扩展OmniSharp命令失效,新版本无法识别.NET SDK路径
- 此前长期正常使用微软官方VS Code C#扩展,IntelliSense、OmniSharp命令均能正常工作
- 安装并卸载C# prettier扩展后,所有OmniSharp命令彻底失效
- 具体异常表现:
- 绑定
OmniSharp: Restart快捷键执行时,提示command o.restart not found - 命令面板中找不到任何OmniSharp相关命令
- 已确认.NET SDK路径正常,安装版本为6.0.411(
/usr/local/share/dotnet/sdk)、7.0.304(/usr/local/share/dotnet/sdk) - 已尝试重启VS Code、卸载重装C#扩展、重启机器,且通过
Developer: Show Running Extensions命令确认C#扩展已运行(启动激活耗时30ms)
- 绑定
- 临时恢复方案:将C#扩展回退至1.26.0版本后,功能完全恢复,推测新版本扩展无法识别手动指定的.NET SDK路径
排查与解决方案
1. 核对OmniSharp的SDK路径配置
- 打开VS Code设置,搜索
OmniSharp: Dotnet Path,确保手动指定的路径是SDK根目录/usr/local/share/dotnet(不要填到sdk子目录) - 检查
OmniSharp: Use Global Mono设置为never,避免Mono干扰.NET SDK的识别逻辑
2. 清理OmniSharp缓存文件
- 关闭VS Code,删除对应系统的缓存目录:
- macOS:
~/Library/Caches/OmniSharp - Linux:
~/.cache/OmniSharp
- macOS:
- 重启VS Code后,重新加载C#扩展
3. 清理C# prettier扩展的残留配置
- 卸载扩展后可能存在配置残留:
- 在VS Code设置中搜索所有含
prettier的配置项,删除与C#相关的残留设置 - 打开
settings.json文件,手动移除任何与C# prettier相关的自定义配置代码
- 在VS Code设置中搜索所有含
4. 强制指定SDK路径适配新版本扩展
如果需要使用最新版C#扩展,可在settings.json中添加以下配置强制指定SDK信息:
"omnisharp.dotnetPath": "/usr/local/share/dotnet", "omnisharp.useModernNet": true
保存配置后重启VS Code,重新激活C#扩展即可。
内容的提问来源于stack exchange,提问作者Jim Campbell
相关产品推荐
相关产品推荐

