M1 Mac下VS Code Omnisharp Intellisense失效问题求助
解决方案
针对M1 Mac(Ventura 13.0.1)上OmniSharp引发的Intellisense失效、架构不匹配问题,可按以下步骤解决:
1. 清理并重新安装ARM64版.NET SDK
- 卸载x64架构的.NET残留:
sudo rm -rf /usr/local/share/dotnet/x64 - 下载对应系统的ARM64版本.NET 6.0.x SDK并重新安装
- 验证安装结果,执行命令确认架构为arm64:
需确保输出中dotnet --infoArchitecture字段为arm64,SDK路径无x64子目录。
2. 强制OmniSharp使用ARM64运行时
- 打开VS Code设置(
Cmd+,),搜索并勾选Omnisharp: Use Modern Net - 打开
settings.json,添加以下配置:"omnisharp.path": "latest", "omnisharp.useModernNet": true, "omnisharp.dotnetPath": "/usr/local/share/dotnet/dotnet" - 重启VS Code,等待OmniSharp服务重新加载
3. 清除OmniSharp缓存与扩展残留
- 关闭VS Code,删除以下目录:
~/.vscode/extensions/ms-dotnettools.csharp-*(所有C#扩展相关文件夹)~/.omnisharp
- 重新打开VS Code,安装最新版微软C#扩展
4. 修复环境变量配置
- 检查
DOTNET_ROOT环境变量:echo $DOTNET_ROOT - 若指向x64目录,修改为ARM64 SDK路径,并写入shell配置文件(
~/.zshrc或~/.bash_profile):echo 'export DOTNET_ROOT=/usr/local/share/dotnet' >> ~/.zshrc source ~/.zshrc - 重启终端和VS Code
问题根源
M1 Mac为ARM64架构,OmniSharp若调用x64版本.NET SDK会触发架构不匹配,导致System.BadImageFormatException;初始提示找不到arm64 SDK,说明系统中SDK架构错误或路径配置未指向正确的ARM64版本。
内容的提问来源于stack exchange,提问作者ddxkalin
相关产品推荐
相关产品推荐

