必须同时关闭extensions.autoupdate和extensions.autocheckupdates,否则仅关前者仍会因后者后台轮询而弹出“update available”提示;还需处理插件专属通知(如gitlens设gitlens.advanced.messages为[])及工作区配置覆盖。

为什么关掉 extensions.autoUpdate 还会弹更新提示
因为 VS Code 的插件更新行为被拆成两个独立开关:extensions.autoUpdate 控制是否自动安装,extensions.autoCheckUpdates 控制是否每小时轮询一次 Marketplace 并弹出“Update available”通知。只关前者,后者仍在后台发请求,右下角照常冒泡。
必须在 settings.json 中同时设为 false:
{
"extensions.autoUpdate": false,
"extensions.autoCheckUpdates": false
}
注意检查工作区级配置(.vscode/settings.json)是否覆盖了用户级设置——CI 脚本或脚手架(如 create-react-app)常默认开启,别信初始化时的“干净”状态。
GitLens、ESLint 等插件的更新提示绕不过全局开关
这些插件不走 VS Code 的通用更新通道,而是自己调用 vscode.window.showInformationMessage 弹窗,所以关掉 extensions.autoUpdate 后它们照刷“New release available”。
处理方式因插件而异:
-
GitLens:搜设置项gitlens.advanced.messages,设为空数组[];或关掉gitlens.telemetry.enabled -
ESLint:设eslint.lintTask.enable为false可减少触发时机,但无官方静音选项 -
Prettier:截至 2026 年 6 月仍无静音开关,临时解法是手动安装旧版后,在扩展页点「禁用自动更新」(若支持)
中文语言包更新不受 extensions.autoUpdate 控制
vscode-language-pack-zh-hans 不是普通插件,它由 VS Code 主程序通过 product.json 和微软 CDN 静默同步,extensions.autoUpdate 对它完全无效。你看到的“重启后语言包版本变了”“手动禁用又被启用”,都是这个机制在运行。
常见误操作包括:在设置里关掉自动更新、设 "update.mode": "none"、甚至卸载重装——全都没用。
真正生效的唯一方式是修改安装目录下的 resources/app/product.json,添加 "enableLanguagePacks": false,但这样做会强制回退到英文界面,且 VS Code 升级时该字段大概率被覆盖。macOS/Linux 的 snap 安装版无法直接写入该文件,等同于不可控。
如何用快捷键手动触发插件更新检查
VS Code 没有默认绑定快捷键给插件更新,但你可以自定义。打开命令面板(Ctrl+Shift+P 或 Cmd+Shift+P),输入并选择 Preferences: Open Keyboard Shortcuts (JSON),在 keybindings.json 中添加:
[{
"key": "ctrl+alt+u",
"command": "workbench.extensions.action.checkForUpdates",
"when": "explorerViewletVisible"
}]
ctrl+alt+u 是推荐组合(避开常用冲突,如 Ctrl+U 是重做);workbench.extensions.action.checkForUpdates 是真实命令 ID;when: "explorerViewletVisible" 表示仅在资源管理器可见时生效,避免在终端或调试窗口误触。
这个动作比依赖空闲 6 小时轮询更可控,也比右上角那个“Update All”按钮靠谱——它只更新已启用插件,禁用的不会动,连 changelog 都看不到。











