手把手教你创建VS离线安装包

创建VS离线安装包

  • 背景
  • 过程说明
  • 工作负荷说明
  • 注意

背景

  • 没有现成的iso 以前的VS一个ISO搞定安装
  • 但现在VS都是在线安装模式了,有些工作机 处于无法联网状态,又需要安装VS时需要离线包
  • 其实现在VS提供了离线安装包的命令行创建方式,下面以VS2019社区版为例,VS2022也是一样操作

过程说明

  1. 下载VS Community 安装exe点击这里,假设放在D盘
  2. 打开CMD,进入D盘
  3. 需要执行命令行 格式为 vs_community.exe [command] ... 命令参考
    常用参数有
    • –layout 指定安装包下载目录
    • –add 添加需要下载的工作负荷(参考下节说明)
    • –includeRecommended 将工作负荷中的推荐项目也安装(默认–add添加的工作负荷仅包括必选组件)
    • –lang 指定语言
    • 因为现在VS全部安装太大,几十个G不止,我们根据自己需要选择需要的工作负荷即可
  4. 一个例子,假设我们制作包含 .NET桌面开发使用C++的桌面开发 的必选和推荐项, 并且添加 MFCvs调试unity插件 (2个工作负荷和2个单独的VS组件)则命令如下
vs_community.exe --layout d:\vs2019 --includeRecommended --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.VC.ATLMFC --add Microsoft.VisualStudio.Component.Unity --lang En-us
  1. vs安装程序会自动将所选择的项目下载到D:\vs2019目录下,下载完成后将该目录打个zip包,拷到无网络机器上即可开始安装。

工作负荷说明

下面说明一下工作负荷的内容,VS2019支持的所有工作负荷参考这里

打开上面网址会发现一堆表格如下所示,我们以.NET desktop development为例


.NET desktop development

ID: Microsoft.VisualStudio.Workload.ManagedDesktop

Description: Build WPF, Windows Forms, and console applications using C#, Visual Basic, and F# with .NET and .NET Framework.
Components included by this workload

Component ID Name Version Dependency type
Microsoft.Component.MSBuild MSBuild 16.5.29515.121 Required
Component.Microsoft.VisualStudio.LiveShare Live Share 1.0.4438 Recommended
Microsoft.Net.Component.4.7.1.TargetingPack .NET Framework 4.7.1 targeting pack 16.10.31205.252 Optional

  1. 上面标红的 ID 代表了 .NET桌面开发 这个工作负荷表格内组件的集合,可以在命令行中–add 此项
  2. 表格内的 Required 项目表示只要选择了 .NET桌面开发 就自动会包含此组件
  3. 表格内的 Recommended 项目表示,选择 .NET桌面开发 并指定 –includeRecommended 才会包含此组件 ,可以在命令行中单独–add 此项
  4. 表格内的 Optional 项目表示,选择 .NET桌面开发 并指定 –includeOptional 才会包含此组件 ,可以在命令行中单独–add 此项

注意

  • 如果觉得选择工作负荷内的组件麻烦,可以直接vs_community.exe --layout d:\vs2019 --includeRecommended --includeOptional --add 某工作负荷ID
  • 推荐在无网络机器上安装VS时先断开网络

小伙伴你学废了吗?如果本文对您有帮助,欢迎点赞评论转发收藏哟

你可能感兴趣的:(笔记,microsoft,visual,studio,vs2019,vs2022)