vscode插件自动更新不修改系统启动项,但启用extensions.autocheckupdates会导致启动时发起http请求而拖慢启动速度;应同时禁用autocheckupdates和autoupdate,并定期手动检查已禁用插件的更新。

插件更新本身不修改系统启动项
VSCode 插件更新(extensions.autoUpdate)完全在用户态运行,不会向 Windows 的 Startup 文件夹、注册表 Run 键,或 macOS 的 launchd、Linux 的 systemd --user 等系统级启动机制写入任何条目。它只影响 VSCode 自身进程启动时的扩展加载行为。
但“自动检查更新”会拖慢 VSCode 启动过程
真正造成“启动变慢”的不是更新动作本身,而是 VSCode 在每次启动时默认执行的后台检查逻辑:
-
extensions.autoCheckUpdates默认为true,启动时会发起 HTTP 请求到marketplace.visualstudio.com - 若网络不通(如无代理配置)、DNS 解析慢或 Marketplace 响应延迟,该请求可能阻塞主线程达 1–3 秒,表现为启动卡在“正在激活扩展”阶段
- 尤其在断网环境或企业内网中,超时等待比失败更耗时
实测关闭后,Developer: Show Running Extensions 中 “Startup” 列显示为 “No” 的扩展数量明显减少,主进程初始化更快。
禁用自动更新的可靠配置方式
不要只依赖 GUI 开关——它有时不同步。直接编辑 settings.json 更稳定:
{
"extensions.autoCheckUpdates": false,
"extensions.autoUpdate": false,
"extensions.ignoreRecommendations": true
}
注意以下两点:
-
extensions.autoUpdate控制“下载并安装”,extensions.autoCheckUpdates控制“是否发起版本比对请求”,二者需同时关掉才彻底切断网络行为 - 禁用后,
Extensions: Check for Updates仍可手动触发,适合你主动控制升级节奏
容易被忽略的副作用:插件启用状态与更新可见性脱钩
很多人关掉自动更新后,误以为“没新版本提示=没更新”,其实:
- 已禁用(
disabled)的插件,即使有新版,也不会出现在“Extensions: Show Outdated Extensions”列表中 -
Update All按钮只更新当前enabled插件,禁用过的插件版本会被“冻结”,长期不更新可能引发兼容性问题(如新版 VSCode 删除了旧 API) - 建议每月手动运行一次
Extensions: Show Disabled Extensions,逐个右键检查是否需重新启用+更新
真正的瓶颈从来不在注册表里,而在你每次打开编辑器时,VSCode 默默发起的那几次 marketplace 请求 —— 它们不改系统,但真拖慢你敲下第一行代码的时间。











