VSCode内置终端可运行dotnet,但OmniSharp提示'dotnet.exe未识别'求助
针对你遇到的情况——终端里dotnet --version正常返回6.0.405,但OmniSharp要么找不到SDK,要么提示dotnet.exe未识别,试试下面这些针对性的解决方案:
修正OmniSharp的路径配置:你之前把
Omnisharp: Dotnet Path设成了SDK的文件夹路径C:/Program Files/dotnet/sdk/6.0.405,这是错误的。这个配置项需要指向dotnet可执行文件的完整路径,也就是C:/Program Files/dotnet/dotnet.exe。而Omnisharp: Sdk Path可以留空,或者设置为SDK的根目录C:/Program Files/dotnet/sdk,让OmniSharp自动检测已安装的版本。检查VSCode与扩展的架构匹配:你安装的是
win32-x64版本的C#扩展,要确保你的VSCode本身也是x64架构(可以通过帮助 > 关于查看版本信息)。如果VSCode是x86版本,它会强制OmniSharp以x86模式运行,自然找不到你安装的x64 SDK。验证系统PATH的优先级:打开系统环境变量设置(右键此电脑 > 属性 > 高级系统设置 > 环境变量),检查系统变量的
PATH中是否包含C:\Program Files\dotnet\,并且确保它排在C:\Program Files (x86)\dotnet\(如果存在的话)的前面。如果x86的dotnet路径优先级更高,OmniSharp会优先调用x86版本,而你没有对应架构的SDK。重置OmniSharp缓存:有时候旧的缓存会导致识别异常。打开VSCode命令面板(Ctrl+Shift+P),输入
OmniSharp: Reset OmniSharp执行重置,然后重启VSCode,让OmniSharp重新加载SDK配置。检查项目的global.json(如果存在):如果你的项目根目录有
global.json文件,确认其中的sdk.version字段是否设置为6.0.405,避免OmniSharp尝试寻找其他版本的SDK。
如果以上方案都无效,建议卸载当前手动安装的C#扩展,从VSCode扩展市场重新安装最新版本——手动下载的vsix可能和当前VSCode版本存在兼容性问题,市场安装的版本会自动匹配你的VSCode环境。
内容的提问来源于stack exchange,提问作者Spectraljump

