清缓存比重试更有效,因VS Code插件更新依赖Cache/extensions/、.extensions-tmp和Extensions/三路径协同,任一残留损坏(如.incomplete文件、权限错误、com.apple.quarantine属性)均会导致静默卡顿。

插件更新失败,90% 不是网络或插件问题,而是本地缓存目录状态异常导致的——VS Code 在更新时会先写入临时目录、再校验、最后原子替换,任一环节卡在缓存层,就会静默挂起。
为什么清缓存比重试更有效
VS Code 的插件更新流程依赖多个缓存路径协同工作:Cache/extensions/ 存预下载包,.extensions-tmp 存解压中文件,Extensions/ 是最终落盘位置。三者只要有一个残留损坏状态(比如 .incomplete 文件、权限错乱、或 com.apple.quarantine 属性),更新就会卡在“Installing…”或报 EPERM: operation not permitted,且不提示具体原因。
-
Cache/extensions/里残留的损坏预下载包,会导致下次更新直接复用坏数据,跳过网络重拉 -
.extensions-tmp被杀毒软件锁住或进程未退出干净,解压步骤永远无法完成 -
Extensions/目录若被标记com.apple.quarantine(常见于非官网安装的 VS Code),系统会拦截所有写操作
必须清理的三个缓存路径(含命令)
清理不是“删一个目录”就完事,得按顺序、分角色处理:
- 先彻底退出 VS Code:macOS 用活动监视器杀掉所有
Code和Code Helper进程;Windows 查Code.exe和msiexec.exe;Linux 执行killall code - 删预下载缓存(避免静默复用坏包):
rm -rf ~/Library/Caches/com.microsoft.VSCode/Cache/extensions/(macOS)del /s /q "%LOCALAPPDATA%\Programs\Microsoft VS Code\Cache\extensions"(Windows) - 删临时解压目录(解决“卡在 99%”):
rm -rf ~/.vscode/.extensions-tmp(macOS/Linux)del /s /q "%USERPROFILE%\.vscode\.extensions-tmp"(Windows) - 最后清理扩展目录的 quarantine 属性(macOS 专属):
xattr -rd com.apple.quarantine ~/Library/Application\ Support/Code/Extensions/
清理后仍失败?检查这些隐藏坑
缓存清了,但更新还是不动,大概率是残留配置或环境干扰:
- 确认
extensions.autoCheckUpdates和extensions.autoUpdate都设为"none"或false,否则 VS Code 1.90+ 会在后台悄悄拉取并卡在缓存校验 - 某些安全软件(如 CleanMyMac、Malwarebytes)会在你启动 VS Code 瞬间扫描
Extensions/目录,直接导致写入被拒;临时退出它们再试 - 如果你改过
extensions.installDir,请检查该自定义路径是否存在、是否可写;否则所有安装操作都会静默失败,无任何提示 - Remote-SSH 场景下,
Cache和.extensions-tmp都在远程机器上,本地清理毫无意义——必须 SSH 登录后,在远程执行对应清理命令
缓存路径本身不复杂,但 VS Code 对它们的依赖是链式的:一个没清干净,整个更新流水线就停摆。最常被忽略的是 .extensions-tmp 目录和 macOS 的 quarantine 属性,这两处不处理,其他操作基本白忙。


















