vscode 源码地址
https://github.com/microsoft/vscode/tree/main/src/vs/platform/update/electron-main/abstractUpdateService.ts#L17可以看到更新地址为
${productService.updateUrl}/api/update/${platform}/${quality}/${productService.commit}
${productService} 是接口 IProductConfiguration , 接口源码在
https://github.com/microsoft/vscode/blob/main/src/vs/base/common/product.ts#L57 ,实际的值在安装目录的 resources/app/product.json 里找到,github 源码根目录的 product.json 并不完整
${productService.updateUrl} 为
https://update.code.visualstudio.com${platform} 为 win32-x64
x64 是 node.js 的 process.arch 的值,可以是'arm', 'arm64', 'ia32', 'mips','mipsel', 'ppc', 'ppc64', 's390', 's390x', and 'x64',如果是 ia32 的话则只需要 win32
值还可以是 win32-${process.arch}-archive ,win32-${process.arch}-user ,archive 就是下载 zip ,user 就是安装到用户目录,跟官方下载页的下载按钮对应。
如果是 linux 的话就是 linux-${process.arch}
如果是 mac 的话就是 darwin 或 darwin-arm64
${quality} 为 stable
${productService.commit} 为任意一个有效的 commit 即可,在 vscode 程序的帮助-关于那里看得到,也可以在安装目录的 resources/app/product.json 里找到
比如
https://update.code.visualstudio.com/api/update/win32-x64/stable/b380da4ef1ee00e224a15c1d4d9793e27c2b6302该地址会输出
{"url":"
https://vscode.cdn.azure.cn/stable/4cb974a7aed77a74c7813bdccd99ee0d04901215/VSCodeSetup-x64-1.79.1.exe?1","name":"1.79.1","version":"4cb974a7aed77a74c7813bdccd99ee0d04901215","productVersion":"1.79.1","hash":"1750c77f3be2691111239ba466b6d025ed8cd068","timestamp":1686586079352,"sha256hash":"bd3efa6bb9d76166142443b76c54ed934cdb6d5a8b1a6e839fa5068eed609150","supportsFastUpdate":true}
如果在外网的话会输出
{"url":"
https://az764295.vo.msecnd.net/stable/4cb974a7aed77a74c7813bdccd99ee0d04901215/VSCodeSetup-x64-1.79.1.exe","name":"1.79.1","version":"4cb974a7aed77a74c7813bdccd99ee0d04901215","productVersion":"1.79.1","hash":"1750c77f3be2691111239ba466b6d025ed8cd068","timestamp":1686586079352,"sha256hash":"bd3efa6bb9d76166142443b76c54ed934cdb6d5a8b1a6e839fa5068eed609150","supportsFastUpdate":true}
这个 json 的 url 就是下载地址了