VS Code 更新失败主因是静默delta更新机制受网络、代理或文件锁影响,非下载不完整;应清缓存、关代理、加Defender排除项,并检查扩展兼容性。

VS Code 更新失败通常不是编辑器本身崩溃,而是更新过程被中断、权限不足或缓存损坏导致的——直接重装或跳过更新反而可能让问题更隐蔽。
更新卡在“Downloading…” 或提示 Failed to update
这是最常见的现象,本质是 VS Code 的静默更新机制(基于 Electron 的 delta 更新)在网络波动或代理配置下容易失败,而不是下载不完整。
- 先关闭所有 VS Code 窗口(包括托盘进程),用任务管理器确认
Code.exe和Code Helper.exe已退出 - 手动删除更新缓存:
%USERPROFILE%\AppData\Local\Programs\Microsoft VS Code\Update.exe同级目录下的update文件夹(Windows);macOS 对应路径为~/Library/Caches/com.microsoft.VSCode.ShipIt/ - 如果用了公司代理或设置了
http.proxy,临时在设置中关闭它,或确保代理支持 HTTPS 隧道(否则update.electronjs.org会被拦截)
Error: EBUSY: resource busy or locked 在 Windows 上反复出现
这个错误几乎总是因为 Windows Defender 实时保护锁住了 resources\app 下的文件,尤其在杀毒软件扫描期间触发更新。
- 把 VS Code 安装目录(如
C:\Users\XXX\AppData\Local\Programs\Microsoft VS Code)加入 Windows Defender 排除列表 - 避免在系统忙时(比如开机后几分钟)手动点击“检查更新”,等后台扫描完成再操作
- 禁用自动更新(
update.mode设为manual)不是长久办法——它只是推迟问题,下次手动更新仍会撞上同样锁
更新后扩展失效、设置丢失或 workbench.main.css 报错
这不是更新失败,而是用户数据目录(User Data)和新版本不兼容。VS Code 每次大版本升级(如 1.85 → 1.86)会重建部分缓存结构,旧扩展若未适配新 API 就会静默停用。
- 不要手动复制整个
extensions文件夹覆盖——改用命令面板运行Extensions: Show Enabled Extensions,逐个禁用再启用,观察哪几个触发报错 - 设置没丢,但可能被新版本默认值覆盖:检查
settings.json中是否有被注释掉的旧配置项(如"editor.fontLigatures": true在某些主题下已弃用) -
workbench.main.css错误多见于自定义 CSS 插件(如Custom CSS and JS Loader),这类插件本身已被 VS Code 官方限制加载,更新后直接失效属预期行为
真正影响稳定性的从来不是“有没有最新版”,而是扩展生态与核心版本之间的隐式契约是否被破坏——每次更新前花 30 秒看一眼 Release Notes 里 “Extension Author Notes” 小节,比修复十次 EBUSY 更省时间。










