必须修改安装目录下的product.json文件才能解决vscode自动更新失败问题,因其硬编码读取update.url和extensionsgallery.url字段,完全忽略settings.json中的配置。

VSCode 插件自动更新弹窗提示“镜像源节点异常”或“无法检查更新”,不是插件本身坏了,而是 VSCode 启动时硬编码读取的更新地址没走你配的 settings.json,它绕过了所有用户设置,直接查安装目录下的 product.json —— 这个文件不改,更新就永远连不上国内镜像。
为什么改了 settings.json 的 serviceUrl 还是更新失败
插件市场搜索/安装走 settings.json,但「自动更新检查」(就是右下角那个灰色感叹号、弹窗提示有新版本)完全不读这个文件。它在启动时从 product.json 里硬编码读取 update.url 和 extensionsGallery.url,这两个字段默认指向微软境外地址,且不会 fallback 到你设的 serviceUrl。
-
product.json位于 VSCode 安装目录下,Windows 示例路径:C:\Users\<username>\AppData\Local\Programs\Microsoft VS Code\resources\app\product.json</username> - macOS 示例路径:
/Applications/Visual Studio Code.app/Contents/Resources/app/product.json - Linux 示例路径(如 snap 安装):
/snap/code/x/y/resources/app/product.json(x/y 随版本变化) - 修改后必须彻底退出 VSCode 并杀掉所有
Code Helper进程,否则新配置不加载
如何安全修改 product.json 适配国内镜像
直接编辑 product.json 是唯一生效方式,但要注意字段名和协议细节,错一个字符就会导致更新图标变灰或报错 ERR_CONNECTION_REFUSED。
- 找到并备份原
product.json文件(防止误操作无法回退) - 搜索
"update": {区块,将其中的"url"值改为:"https://vscode.cdn.azure.cn/api/update/stable/win32-x64-user"(Windows)或对应平台路径,末尾不要加/ - 搜索
"extensionsGallery": {区块,将"itemUrl"和"controlUrl"也统一替换为https://vscode.cdn.azure.cn/_apis/public/gallery;"recommendationsUrl"可留空或删掉(该字段已废弃) - 确保 JSON 格式合法:字段名用双引号、逗号不能多也不能少、末尾无逗号
- 别用
open-vsx.org替换 update.url —— 它不提供 VSCode 自身二进制更新服务,会直接报 404
验证更新源是否真正生效
别信右下角图标颜色,得看真实网络请求。手动触发更新检查后抓包,才能确认是不是真连到了镜像节点。
- 按
Ctrl+Shift+P→ 输入并运行Developer: Toggle Developer Tools - 切换到
Network标签页,清空列表 - 再按
Ctrl+Shift+P→ 运行Update: Check for Updates - 观察发出的 GET 请求:成功应看到类似
GET https://vscode.cdn.azure.cn/api/update/stable/win32-x64-user - 如果仍看到
update.code.visualstudio.com或vscode.blob.core.windows.net,说明product.json没被读取,大概率是进程未彻底退出或路径找错了
改 product.json 是最底层的解法,但也最易出错——它不像 settings.json 那样支持热重载,也不受 VSCode 设置 UI 管理。一旦填错 URL 或格式非法,VSCode 可能无法启动,或更新功能永久失效。务必先备份,再逐字段对照官方镜像文档修改,别凭记忆手敲域名。











