插件更新失败主因是残留的-cache临时目录、cacheddata缓存、settings.json过期配置及globalstorage旧状态。需分别清理:删-extension下*-cache文件夹;清空cacheddata目录;手动删除settings.json中对应插件配置;按id清理globalstorage子目录。

插件更新失败时,ms-python.python-2024.12.0-cache 这类目录是罪魁祸首
VSCode 插件更新不是原子操作——下载、解压、校验、替换分步进行。一旦中途断电、网络中断或磁盘满,就会在 ~/.vscode/extensions/(Windows/macOS/Linux 统一路径)下留下带 -cache 后缀的临时文件夹。这些目录不会被自动清理,且 VSCode 启动时会优先尝试加载它们,结果就是语言服务器起不来、跳转失效、状态栏一直显示“Activating…”。
- 只删名字匹配
-cache$的子目录,比如ms-python.python-2024.12.0-cache或github.copilot-4.52.0-cache - 别碰同名但不带
-cache的主目录(如ms-python.python-2024.12.0),那是已激活的插件本体 - PowerShell 一行清空:
Get-ChildItem "$env:USERPROFILE\.vscode\extensions" | Where-Object {$_.Name -match '-cache$'} | Remove-Item -Recurse -Force - macOS/Linux 用:
find ~/.vscode/extensions -name "*-cache" -type d -exec rm -rf {} +
CachedData 目录和插件更新没直接关系,但会干扰 Marketplace 加载
CachedData 存在 %APPDATA%\Code\CachedData(Windows)或 ~/.cache/Code/CachedData(macOS/Linux),它缓存的是 Marketplace 页面 HTML、扩展图标、分类 JSON 等前端资源,不是插件代码本身。但它长期不清理会导致你搜不到新版本插件、点击“更新”无反应、甚至 Marketplace 页面白屏。
- 这个目录可安全全删,重启 VSCode 后自动重建,不影响已安装插件功能
- 删完后首次打开 Marketplace 会稍慢,因为要重新拉取资源
- 它和
Cache(Chromium HTTP 缓存)是两个独立目录,别混淆;Cache影响 UI 渲染,CachedData只影响 Marketplace 体验
插件更新后配置残留:settings.json 里藏着过期的插件键值
卸载或更新插件后,VSCode 不会自动清理 settings.json 中对应的配置项。比如你删了 esbenp.prettier-vscode,但 "prettier.requireConfig"、"prettier.tabWidth" 这些字段还留在全局配置里。重装同名插件时,这些旧值会被继承,可能引发格式化异常或设置冲突。
- 运行
Preferences: Open Settings (JSON),搜索插件 ID(如esbenp.prettier-vscode)或常见前缀(如prettier.、python.defaultInterpreter) - 整行删除,注意嵌套结构——比如
"editor.formatOnSave"是通用设置,不能因删 Prettier 就一起删掉 - 保存后必须重启 VSCode,否则部分插件仍按旧配置初始化
globalStorage 是插件私有状态仓库,更新插件不等于清空它
很多插件(如 Copilot、GitLens、Pylance)把用户态数据存在 %APPDATA%\Code\User\globalStorage(Windows)或 ~/Library/Application Support/Code/User/globalStorage(macOS)下,按插件 ID 建子目录。这些数据包括 API Token、历史对话、符号索引快照等——即使你重装插件,只要 globalStorage 里的对应文件夹还在,插件就“记得”你上次的状态。
- 路径中子目录名通常就是插件 ID(如
github.copilot、ms-python.python),直接按 ID 搜索并删除整个文件夹 - 删了之后,Copilot 需重新登录,Pylance 会重建 Python 符号索引(首次打开项目略慢)
- 这个目录和
User/settings.json是两套机制:settings.json存行为规则,globalStorage存运行时状态











