必须用ARM64原生版VSCode,否则插件禁用、终端错乱、调试卡死;验证需三步:file命令查Electron含arm64、process.arch返回arm64、活动监视器中Code Helper架构为Apple silicon。

VSCode 在 M1/M2 Mac 上必须用 ARM64 原生版,否则所有后续配置——包括 C# 智能提示、Git 补全、终端命令执行——都会出问题。x86_64 版本哪怕能启动,也默认走 Rosetta 2 转译,process.arch 返回 x64,uname -m 返回 x86_64,插件直接禁用或崩溃。
怎么确认当前 VSCode 是不是 arm64 原生?
别信图标、下载记录或“看起来能用”,必须用命令验证:
-
file /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron—— 输出里必须含arm64字样 - 在 VSCode 里按
Cmd+Shift+P→ 输入Developer: Toggle Developer Tools→ 控制台运行process.arch,返回值必须是"arm64" - 打开「活动监视器」→ 搜索
Code Helper→ 找到Code Helper (Renderer)进程 → 「架构」列显示Apple silicon或arm64,不是Intel
哪里下真正的 M1/M2 原生版 VSCode?
官网「Download for Mac」按钮默认可能给的是 Universal 包(含 x86_64 + arm64),但系统常优先选 x86_64;你必须手动点进下载页,找明确带 arm64 或 Apple Silicon 标识的链接:
- 访问
https://code.visualstudio.com/Download - 点击「macOS」旁的下拉箭头 → 选择
macOS (ARM64)(文件名通常为VSCode-darwin-arm64.zip或.dmg) - 不要选
macOS (Universal),它不可靠;更不要选macOS (Intel chip) - 下载后拖入
/Applications,右键新图标 → 「显示简介」→ 确保「以 Rosetta 模式打开」未勾选
装完 VSCode,为什么终端还是 x86_64?
VSCode 集成终端如果调用的是 Intel 版本的 shell 或工具链,dotnet、git、node 全部降级运行,Omnisharp 直接报错或不响应。关键检查点:
- 在 VSCode 终端中执行
uname -m,必须返回arm64 - 执行
echo $SHELL,应为/bin/zsh(macOS Sonoma/Ventura 原生路径),不能是/opt/homebrew/bin/zsh(那是 Intel Homebrew 装的) -
which node、which python3、which dotnet返回的路径必须指向/opt/homebrew/bin/...(ARM64 Homebrew)或/usr/local/share/dotnet/arm64/...,而非/usr/local/bin/...(旧 Intel Homebrew) - 若发现不一致:先卸载旧 Intel Homebrew(
rm -rf /usr/local/bin/brew),再用官方脚本重装 ARM64 版:arch -arm64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
扩展装了但不工作?ABI 不匹配是主因
很多扩展(尤其是含本地二进制模块的,如 C/C++、Python、Unity Tools Pro)在 arm64 VSCode 中会静默禁用,连错误提示都不给。这不是配置问题,是 ABI 不兼容:
- 打开扩展面板(
Cmd+Shift+X),对每个关键扩展点击齿轮 → 「卸载」→ 重新搜索安装,只认发布日期晚于 2022 年 10 月、详情页注明支持 Apple silicon 的版本 - 在
settings.json加一行:"extensions.ignoreRecommendations": true,防止 VSCode 自动推荐 x86_64 专属扩展 - 某些扩展(如旧版 Omnisharp)需手动清理残留:
rm -rf ~/.vscode/extensions/ms-dotnettools.csharp-*,再重启 VSCode 让它自动重装匹配版
最常被忽略的一点:VSCode 启动方式。即使你装了 arm64 版,如果从 Dock 或 Spotlight 启动时后台残留了 x86_64 进程,新窗口仍可能继承转译态。每次重装后务必执行 killall "Code Helper",再从 Finder 双击启动。


















