必须同时关闭extensions.autoupdate和extensions.autocheckupdates,否则插件仍会每小时轮询、弹窗或静默下载;还需检查工作区覆盖、插件专属通知及清空残留气泡。

只设 extensions.autoUpdate 为 false 不够,必须同步关掉 extensions.autoCheckUpdates,否则插件仍会每小时发起 HTTP 请求、下载更新包、弹右下角气泡。
为什么关了 autoUpdate 还在偷偷下载?
VSCode 的插件更新是两阶段行为:先「检查」(autoCheckUpdates 控制),再「安装」(autoUpdate 控制)。前者默认每小时轮询一次 Marketplace API,即使不安装,也会静默拉取新版本元数据甚至完整 .vsix 包到本地缓存目录。你看到的「New release available」气泡,往往就来自这个检查阶段,和是否允许安装无关。
常见错误现象:
- 设置里勾掉了 Extensions: Auto Update,但日志里仍出现
Checking for extension updates - 重启 VSCode 后右下角突然弹 GitLens 更新提示,而你没动过设置
- 网络监控工具显示 VSCode 在空闲时发起大量
/vscode/gallery/…/query请求
必须同时写进用户 settings.json 的两个字段
打开命令面板(Ctrl+Shift+P 或 Cmd+Shift+P),执行 Preferences: Open User Settings (JSON),在大括号内添加以下两行(注意末尾逗号):
"extensions.autoUpdate": false, "extensions.autoCheckUpdates": false
关键点:
- 别依赖 GUI 设置界面——它有时不同步,尤其用了 Settings Sync 或团队模板时
- 这两个字段必须同时存在,缺一不可;设成
"manual"或留空等同于true - Windows 用户若快捷方式勾选“以管理员身份运行”,部分配置可能被拦截写入失败
工作区配置可能覆盖全局设置
即使用户级 settings.json 写对了,只要项目根目录存在 .vscode/settings.json,且里面包含 "extensions.autoUpdate": true 或类似字段,就会直接生效。VSCode 配置优先级是:工作区 > 用户 > 默认。
排查建议:
- 执行
Preferences: Open Workspace Settings (JSON),检查是否存在冲突项 - CI 脚本或脚手架(如 create-react-app)常自带
"extensions.autoUpdate": true,别盲目信任“刚初始化的项目” - 若需统一禁用,可在工作区 settings.json 中显式写入
"extensions.autoUpdate": false覆盖父级
GitLens、ESLint、Prettier 这类插件还会自己弹窗
它们不走 VSCode 原生更新流程,而是调用 vscode.window.showInformationMessage 直接发通知。关掉上面两个全局开关后,仍可能看到「Update available」气泡。
必须单独压制:
- GitLens:搜
gitlens.advanced.messages,设为[];顺手关gitlens.telemetry.enabled - ESLint:确认
eslint.packageManager设为null,避免靠包管理器触发检查 - Prettier:设
prettier.enableUpdateCheck为false(v9.13.0+ 支持) - 所有这些字段都得手动加进用户级
settings.json,保存后重启生效
真正起效前,记得执行 Notifications: Clear All Notifications 清掉已积压的气泡——它们不会因为关掉开关就自动消失。











