本文详细介绍了 VS2019 离线安装的相关步骤,以桌面开发为主下载 C++桌面开发、.NET 桌面开发相关的工作负载、MFC 可选组件及帮助查看器。
工作负载(Workload)
离线安装需要先根据开发的项目类型下载相关的 工作负载(Workload)。工作负载包含多个依赖项,分为必需(Required)、建议(Recommended)、可选(Optional) 三种类型。如下图所示:
以 C++桌面开发为例,ATL 是建议组件,而 MFC 是可选组件。
在下载工作负载或可选组件时,需要先选择 VS 版本(本文下载版本为 VS2019 社区版),因为不同的版本依赖项类型可能不同。如在 VS2017 中 .NET Framework 4.7.2 的 SDK 及目标包为可选类型,在 VS2019 中则为必需类型。
VS2017 中的 .NET Framework 4.7.2:
VS2019 中的 .NET Framework 4.7.2:
VS2019 工作负载的详细介绍可以看这里。
下载安装工具
在这里下载 Visual Studio 引导程序,该文也讲解了如何根据不同的开发类型下载相关的工作负载。 如下图:
桌面开发(C++ & .NET)
在命令行下输入下面的命令下载 C++桌面开发、.NET 桌面开发工作负载及推荐组件。
1vs_community__891427824.1534167097.exe --layout .\vs2019_layout --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Workload.ManagedDesktop --includeRecommended --lang en-US zh-CN
命令含义:
- vs_community__891427824.1534167097.exe:前一步下载的 Visual Studio 引导程序
- --layout:指定 VS2019 相关组件的下载目录,设置为当前目录下的 vs2019_layout 目录。
- --add:添加将要下载的工作负载,添加的是 NativeDesktop、ManagedDesktop
- --includeRecommended:安装相关工作负载的推荐组件(另一个参数 --includeOptional 将会下载选定的工作负载中可选的组件,会导致下载的安装包过大,不建议使用。)
- --lang:下载指定的语言包,本人下载了英文(en-US)、中文(zh-CN)
下载完成后如下图所示:
vs_community.exe 的详细命令参数可以看这里。
MFC 可选包
MFC 相关的工具包在工作负载 Microsoft.VisualStudio.Workload.NativeDesktop 中属于可选包,需要单独下载。
1vs_community__891427824.1534167097.exe --layout .\vs2019_layout --add Microsoft.VisualStudio.Component.VC.ATLMFC --lang en-US zh-CN
帮助查看器(HelpViewer)
帮助查看器属于独立工作负载,也需要单独下载。
1vs_community__891427824.1534167097.exe --layout .\vs2019_layout --add Microsoft.Component.HelpViewer --lang en-US zh-CN
安装包大小
经过以上步骤下载完毕后,安装包的大小如下图所示,比 VS2017 的还少占用了部分空间(在安装 VS2017 时,这几个工作负载及组件下载后占用 3.15G 空间)。
安装
下载完毕后,将网络断开或将其拷贝到其它未联网的电脑上,然后进入 vs2019_layout 目录,双击 vs_setup.exe 进行安装。
查看 MFC 可选组件及帮助查看器是否选中:
修改安装目录:VS2019 默认安装在 C 盘,将占用大量的磁盘空间,建议修改在其它盘。然后点击右下角的 安装 进行安装。
安装过程如下:
在安装过程中出现了如下警告,点击 继续 安装(安装后创建测试工程暂未发现异常,先不处理)。
创建工程
安装完成后,分别创建 MFC 工程及 WinForm 工程进行测试。
创建新项目:
以 MFC 为例创建项目,在搜索框中输入 MFC 或 选择语言(C++)、平台(Windows)、项目类型(桌面),然后点击 MFC 应用,根据后面的向导界面修改工程选项,如下图所示:
WinForm 项目的创建与 MFC 类似,在搜索框中输入 WinForm 即可,或将语言改为 C#,如下图所示:
编译创建的工程,可以看到全部生成成功。
- - - End - - -