VS2019之前的VS版本(VS2017, VS2015, VS2013 … )的安装程序都是以ISO方式提供的,在网上都能下载到。
从VS2019开始,默认的安装程序都是在线安装。
在MS官方上只能下载到最新版的VS在线安装程序(e.g. VS2022), 旧版的VS(e.g. VS2019)以后就可能下载不到了。
想按照官方文档做一个VS2019的离线安装程序, 做好之后,就不怕MS站点下载不到了。
另外,如果自己计算机挂了之后(装的东西多了之后,不知道啥时候就会win10蓝屏),如果在重新安装win10后,在本地装VS2019比从MS官方装,那要快很多。
创建 Visual Studio 的脱机安装包以进行本地安装( learn.microsoft /zh-cn/visualstudio/install/create-an-offline-installation-of-visual-studio?view=vs-2019)
创建和维护 Visual Studio 的网络安装( learn.microsoft /zh-cn/visualstudio/install/create-a-network-installation-of-visual-studio?view=vs-2019)
Visual Studio Community 组件目录( learn.microsoft /zh-cn/visualstudio/install/workload-component-id-vs-community?view=vs-2019&preserve-view=true)
按照上述的官方文档来做VS2019社区版的离线安装包.
请确保完整安装路径少于 80 个字符
D:\tools\vs\vs2019\vs2019_offline
https://aka.ms/vs/16/release/vs_community.exe
官网上没有VS2019社区版的引导程序, 这个链接是我参考VS2022的猜测出来的, 好使。
将 vs_Community.exe 拷贝到 D:\tools\vs\vs2019\vs2019_Community.exe
查看 vs2019_Community.exe, 可以看到,也是VS2019的在线安装程序。比上次下载的VisualStudioSetup_vs2019社区版.exe还新。
说明官方现在还不断的在升级维护VS2019.
打开命令行,进入到D:\tools\vs\vs2019
cd /d D:\tools\vs\vs2019
vs2019_Community.exe --layout D:\tools\vs\vs2019\vs2019_offline --lang En-us Zh-cn
单个语言区域设置的完整初始布局需要 Visual Studio Community 的磁盘空间约 40 GB,那么这个布局(英文 + 中文 所有包大概就80GB)
布局还可以指定负载组件ID, 可以使做好的布局更小。但是谁知道自己以后要用VS2019完整包中的哪个组件呢。所有做一个完整的布局比较划算和靠谱。

等待布局完成。
到97%时失败了,有一个包没下载下来,我的网络没问题,应该是MS站点没响应。
可以重新运行同一个下载命令,再下载时,已经下载好的文件,只会进行校验(verify), 很节省时间。

等校验到还没下载的包时,就会进入下载。

在Starting ‘UpdateLayout’ operation 和 UpdateLayout progress: 0%之间,好像等了有10分钟。
在这10分钟内,是没有网络通讯的。都是在本地在干活。

更新离线包布局时,好像大部分时间并不是在下载,比想象的慢。

等待下载完成,现在就差3%就完成。
但是为啥更新布局从0到1%这么慢啊。
又等了10分钟,才看到网络流量开始上升到300K. 这时才算是正式开始下载东西。
UpdateLayout progress: 49%
Error: Package 'OpenJDKv8,version=8.0.302.8,chip=x86' failed to download from 'https://go.microsoft.com/fwlink/?linkid=2161059'. WebClient download failed: 无法连接到远程服务器. Bits download failed: Timeout reached for job VsBitsDownloadJob - -359569673 whilst in state BG_JOB_STATE_CONNECTING. WinInet download failed: 函数: InternetOpenUrl,HR: -2147012867 ,消息: Unknown error 12029, Signature: PackageId=OpenJDKv8;PackageAction=DownloadPackage;ReturnCode=0x80131500
Error: 安装已完成,但有错误。
Error: 发生一个或多个错误。
向我们发送有关布局体验的反馈:http://aka.ms/vs/setup/layout/feedback
又断了,但是 https://go.microsoft.com/fwlink/?linkid=2161059 是可以下载到OpenJDKv8的msi的。
那只能重复上面的原始命令,再继续下载了。
还好MS已经想到了下载这么多东西,会出现下载失败的情况,要不咋弄。

终于发现为啥后面呢下载的这么慢或者断掉,但是我的网络是通的。
原来VS需要的文件有一部分在github上。
所以,要做这个离线安装包,必须网络质量要好才行。
这每秒10K的速度,啥时候能下载完啊…
要是以这样的低速下载,过几个小时,就会被github的cdn踢掉线。
早上起来看,到78%时又失败了。
这说明,必须要将网络通讯质量搞好,否则一定会下载失败。
更换好的DNS(IPV4,IPV6), 换上好网络。
很快就布局完成。
vs2019_Community.exe --layout D:\tools\vs\vs2019\vs2019_offline --verify
47.5GB
好辛苦做的离线安装包,用7z压缩保存一个副本。
先从控制面板中卸载VS2019
卸载完成后,’C:\ProgramData\Microsoft\VisualStudio\Packages‘ 内是在线版本下载的安装包,可以删了
看了一眼, 卸载了VS2019之后,’C:\ProgramData\Microsoft\VisualStudio\Packages‘ 中的内容自动没有了。
如果为了验证,是否完全从本地布局安装的VS2019, 可以将网络先断掉。
cd D:\tools\vs\vs2019\vs2019_offline
vs2019_Community.exe --noWeb
测试过了,离线安装好使:)
VS2019社区版的引导程序https://aka.ms/vs/16/release/vs_community.exe
VS2019社区版的引导程序就是VS2019在线安装的程序。
如果自己贪心不足,或者有条件,在做好备份的情况下,以后可以用下列命令来更新VS2019本地安装的程序包。
cd /d D:\tools\vs\vs2019
vs2019_Community.exe --layout D:\tools\vs\vs2019\vs2019_offline --lang En-us Zh-cn
可以更新程序包的原因,MS在VS2019产品周期中,一直会维护升级VS2019.
看MS官方文档(Visual Studio 2019 产品生命周期和服务( learn.microsoft /zh-cn/visualstudio/releases/2019/servicing-vs2019))可以知道 VS2019-v16.11到2029 年 4 月才会支持结束日期.
在此之前,都可以自己更新离线安装包。

