vscode禁用自动更新需同时关闭主程序、插件、后台服务三层通道:设"update.mode":"none"、"update.enablewindowsbackgroundupdates":false(win)、"extensions.autoupdate"/"autocheckupdates":false,并检查工作区及远程设置,必要时设settings.json为只读。

VSCode 无法靠单个开关禁用自动更新,必须同时切断主程序、插件、后台服务三层更新通道,否则仍会弹窗、静默下载甚至崩溃重启。
update.mode 设为 "none" 是基础,但不是全部
只在 settings.json 里加 "update.mode": "none" 只能阻止提示和自动重启,不阻止后台下载。Windows 用户必须额外设 "update.enableWindowsBackgroundUpdates": false,否则 update.exe 进程仍会拉取新包。macOS/Linux 建议补上 "update.showReleaseNotes": false 避免每次启动弹 changelog。
- 改完不用重启 VSCode 就生效,但建议立即点
Help > Check for Updates验证:菜单项应变灰,且无响应 - 如果右下角仍有气泡,大概率是工作区或远程环境(如 Remote-SSH)的配置覆盖了用户设置
- 检查左下角状态栏是否显示
Remote — SSH或Dev Container,点击它 →Open Remote Settings→ 确认update.mode同样为"none"
extensions.autoUpdate 和 autoCheckUpdates 必须同时关
插件更新与主程序完全解耦。extensions.autoUpdate 控制是否安装,extensions.autoCheckUpdates 控制是否发起 HTTP 请求轮询版本——漏掉任一,都会导致右下角弹 “Update available” 或 Extension host terminated unexpectedly。
- 两个字段都必须显式写进
settings.json,GUI 设置有时不同步,尤其用了 Settings Sync 时 - 检查项目根目录是否存在
.vscode/settings.json,里面若含"extensions.autoUpdate": true,会直接覆盖全局配置 - 某些插件(如
eamodio.gitlens)自带通知逻辑,需单独设"gitlens.advanced.messages": []才能禁掉弹窗
物理层加固:防止配置被重写或绕过
VSCode 大版本升级时可能重写 settings.json,把 "none" 改回 "default";Snap/Flatpak 安装版还会走系统级更新机制,内部配置无效。
- 找到你的
settings.json文件路径(Windows:%APPDATA%\Code\User\settings.json),右键设为“只读” - Snap 版本(Ubuntu 默认)必须执行:
sudo snap refresh --hold vscode - Windows 用户进
taskschd.msc删除所有含VSCode或update的计划任务,再用任务管理器结束残留的update.exe进程
最易忽略的是:每次手动升级 VSCode 后,settings.json 可能被重置,且远程开发环境的服务端配置常被遗忘。锁版本不是一劳永逸的事,而是要持续验证三处:本地用户设置、工作区设置、远程服务端设置。











