macOS版VSCode编写C#时PROBLEMS面板不实时报错如何解决
VS Code C#扩展实时报错失效修复方案(macOS环境)
适用场景:安装1.25.0版本官方C#(OmniSharp驱动)扩展时,编写代码过程中PROBLEMS面板不实时显示语法错误,仅运行代码时才抛出错误,重装扩展、重启OmniSharp、重装VS Code均无效的情况。
- 确认项目打开方式正确
必须通过VS Code的「打开文件夹」功能,选中包含.csproj或.sln文件的项目根目录打开,不能直接单独打开单个.cs代码文件。单独打开单文件时OmniSharp不会启动完整的代码分析流程,自然不会实时输出报错。 - 验证OmniSharp运行状态
按Cmd+Shift+P调出命令面板,输入执行OmniSharp: Select Project:- 如果能弹出当前工作区的项目文件列表,说明OmniSharp已正常加载,继续后续步骤
- 如果没有任何项目可选,说明OmniSharp启动失败,直接跳到日志排查步骤
- 查看OmniSharp日志定位根因
按Cmd+Shift+U调出输出面板,在面板右上角的下拉菜单中选中OmniSharp Log,根据日志报错处理:- 提示找不到.NET SDK:先在终端执行
dotnet --version确认SDK已正常安装,再执行which dotnet获取dotnet可执行文件的完整路径,打开VS Code设置搜索OmniSharp: Dotnet Path,填入获取到的路径后重启OmniSharp即可 - 提示Mono运行时异常:打开VS Code设置搜索
OmniSharp: Use Modern Net,确保该选项为勾选状态,1.25.0版本在macOS环境下关闭该选项时会依赖系统自带的老旧Mono运行时,极易出现启动异常
- 提示找不到.NET SDK:先在终端执行
- 清除OmniSharp损坏缓存
完全退出VS Code,打开访达按Cmd+Shift+G,进入路径~/.vscode/extensions/,找到前缀为ms-dotnettools.csharp-1.25.0的文件夹(Intel芯片选x64后缀、M系列芯片选arm64后缀),进入后删除里面的.omnisharp缓存文件夹,重新打开VS Code等待OmniSharp自动重新拉取依赖、加载项目即可 - 检查分析配置是否被误改
打开VS Code设置,搜索Csharp: Analysis Enabled,确保选项值为Open Files或Full Solution;再搜索Problems: Visibility,确认C#相关的报错没有被过滤隐藏。
内容的提问来源于stack exchange,提问作者Mizukukun
相关产品推荐
相关产品推荐

