当前位置: 首页 > news >正文

制作一个可以离线安装的Visual Studio安装包

须知

  • 前提条件,需要电脑可以正常上网且网速还行,硬盘可以空间容量足够大,怎么判断容量够用?由组件数量的多少来决定。
  • Visual Studio 频道和发布节奏
    https://learn.microsoft.com/zh-cn/visualstudio/productinfo/release-rhythm

步骤 1 - 下载 Visual Studio 引导程序

  • 1.1、旧的版本下载:
    https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
  • 1.2、新版本下载:
    https://visualstudio.microsoft.com/zh-hans/

下载最新的Visual Studio 2022,对应Community版本,下载后的引导程序,文件大小接近在4MB的样子
在这里插入图片描述

步骤 2 - 创建本地布局

  • 创建和维护 Visual Studio 的网络安装
    https://learn.microsoft.com/zh-cn/visualstudio/install/create-a-network-installation-of-visual-studio?view=vs-2022

  • 使用命令行参数安装、更新和管理 Visual Studio
    https://learn.microsoft.com/zh-cn/visualstudio/install/use-command-line-parameters-to-install-visual-studio?view=vs-2022

  • 语言区域设置
    https://learn.microsoft.com/zh-cn/visualstudio/install/use-command-line-parameters-to-install-visual-studio?view=vs-2022&preserve-view=true#list-of-language-locales

  • 创建 Visual Studio 的脱机安装包以进行本地安装
    https://learn.microsoft.com/zh-cn/visualstudio/install/create-an-offline-installation-of-visual-studio?view=vs-2022


选择一个合适的开发场景,执行相应的命令
创建的语法,参数释义可以参考
–add:用于指定工作负载或组件 ID。
如果使用 --add,只会下载使用 --add 指定的工作负载和组件。 如果不使用 --add,将下载所有工作负载和组件。
–includeRecommended,用于添加针对指定工作负载 ID 的所有推荐组件。
–includeOptional,用于添加针对指定工作负载 ID 的所有可选组件。
–config 使用配置文件指定应包含在布局中的组件。
–lang:用于指定语言区域设置。

VS引导执行程序  --layout 指定用于创建或更新脱机安装缓存的目录 --add 组件的id名称 --includeOptional --lang 设置需要的语言
  • 对于仅支持一种语言的.NET Web 和 .NET 桌面开发,语言中文和英文,请运行:

    VisualStudioSetup.exe --layout c:\localVSlayout --add Microsoft.VisualStudio.Workload.NetWeb --add Microsoft.VisualStudio.Workload.ManagedDesktop --includeOptional --lang zh-CN en-US
    
  • 对于仅支持一种语言的 C++ 桌面开发(包括所有推荐组件和可选组件),语言中文和英文,请运行:

    VisualStudioSetup.exe --layout c:\localVSlayout --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --includeOptional --lang zh-CN en-US
    

步骤 3 - 从本地布局安装 Visual Studio

  • 运行安装并阻止客户端计算机访问 Internet,特别注意一点,此时引导程序在layout指定的目录下也会有一份,那么可以使用绝对路径来配置

    c:\localVSlayout\VisualStudioSetup.exe --noWeb --add Microsoft.VisualStudio.Workload.NetWeb --add Microsoft.VisualStudio.Workload.ManagedDesktop --includeOptional --addProductLang zh-CN en-US
    
  • 也可以设置程序安装的位置和产品激活的密钥

    c:\localVSlayout\VisualStudioSetup.exe --noWeb --add Microsoft.VisualStudio.Workload.NetWeb --add Microsoft.VisualStudio.Workload.ManagedDesktop --includeOptional --addProductLang zh-CN en-US --installPath C:\vs2022 --productKey XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
    
  • 上截图,组件、文件安装的位置
    在这里插入图片描述

  • 上截图,语言
    在这里插入图片描述

  • 安装的过程中没有联网,只是验证安装包的时间有些长
    在这里插入图片描述

  • 指定的位置
    在这里插入图片描述

bat脚本

  • 创建本地布局
@echo off
color 0a
title VS创建本地布局脚本
call VisualStudioSetup.exe --layout c:\localVSlayout ^
--add Microsoft.VisualStudio.Workload.NetWeb ^
--add Microsoft.VisualStudio.Workload.ManagedDesktop ^
--add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended ^
--includeOptional --lang zh-CN en-US
  • 从本地布局里安装
@echo off
color 0a
title VS从本地布局里安装脚本
call c:\localVSlayout\VisualStudioSetup.exe --installPath C:\vs2022 --noWeb ^
--add Microsoft.VisualStudio.Workload.NetWeb ^
--add Microsoft.VisualStudio.Workload.ManagedDesktop ^
--add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended ^
--includeOptional --addProductLang zh-CN en-US ^
--productKey XXXXX-XXXXX-XXXXX-XXXXX-XXXXX



参考汇总

以2019版本的VS为参考,对应的组件目录

  • Visual Studio Enterprise 2019 组件目录
    https://learn.microsoft.com/zh-cn/visualstudio/install/workload-component-id-vs-enterprise?view=vs-2019
  • Visual Studio Professional 2019 组件目录
    https://learn.microsoft.com/zh-cn/visualstudio/install/workload-component-id-vs-professional?view=vs-2019
  • Visual Studio Community 2019 组件目录
    https://learn.microsoft.com/zh-cn/visualstudio/install/workload-component-id-vs-community?view=vs-2019

列出部分组件

组件名称组件ID组件描述
Visual Studio 核心编辑器(Visual Studio Professional 2019 随附)ID: Microsoft.VisualStudio.Workload.CoreEditor描述: Visual Studio 核心 shell 体验,包括语法感知代码编辑、源代码管理和工作项管理。
通用 Windows 平台开发ID: Microsoft.VisualStudio.Workload.Universal描述:使用 C#、VB、或可选 C++ 为通用 Windows 平台创建应用程序。
.NET 桌面开发ID: Microsoft.VisualStudio.Workload.ManagedDesktop说明:将 C#、Visual Basic 和 F# 与 .NET 和 NET Framework 一起使用,生成 WPF、Windows 窗体和控制台应用程序。
使用 Unity 的游戏开发ID: Microsoft.VisualStudio.Workload.ManagedGame描述: 使用 Unity(功能强大的跨平台开发环境)创建 2D 和 3D 游戏。
使用 C++ 的桌面开发ID: Microsoft.VisualStudio.Workload.NativeDesktop描述: 使用所选工具(包括 MSVC、Clang、CMake 或 MSBuild)生成适用于 Windows 的新式 C++ 应用。
使用 C++ 的游戏开发ID: Microsoft.VisualStudio.Workload.NativeGame描述: 以 DirectX、Unreal 或 Cocos2d 为后盾,利用 C++ 的强大功能生成专业游戏。
Node.js 开发ID: Microsoft.VisualStudio.Workload.Node描述: 使用 Node.js(一个由异步事件驱动的 JavaScript 运行时)生成可缩放的网络应用程序。
Python 开发ID: Microsoft.VisualStudio.Workload.Python描述: 对 Python 进行编辑、调试、交互式开发和源代码管理。
Visual Studio 扩展开发ID: Microsoft.VisualStudio.Workload.VisualStudioExtension描述: 为 Visual Studio 创建加载项和扩展,包括新命令、代码分析器和工具窗口。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【QT】qt各模块描述
  • windows2012 安装mysql5.7
  • AI-ChatGPTCopilot
  • 面试高频算法专题:数组的双指针思想及应用(算法村第三关白银挑战)
  • vue前端学习笔记
  • 【K8S 二进制部署】部署单Master Kurbernetes集群
  • Android ImageView的Bitmap在scaleType情况下Bitmap顶部与底部RectF坐标,Kotlin
  • Vite+Vue3学习笔记(2)——语法、渲染、事件、数据传递、生命周期、第三方库、前端部署
  • Python使用PyMySql增删改查Mysql数据库
  • shell 切片参数解释
  • BUUCTF Reverse/[2019红帽杯]Snake
  • 手拉手后端Springboot整合JWT
  • 开源可观测性平台Signoz(四)【链路监控及数据库中间件监控篇】
  • 2024年原创深度学习算法项目分享
  • HTML进阶
  • 【剑指offer】让抽象问题具体化
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 3.7、@ResponseBody 和 @RestController
  • Effective Java 笔记(一)
  • Git的一些常用操作
  • Python_网络编程
  • ReactNativeweexDeviceOne对比
  • Spring Boot快速入门(一):Hello Spring Boot
  • TCP拥塞控制
  • vue的全局变量和全局拦截请求器
  • XML已死 ?
  • 产品三维模型在线预览
  • 基于 Babel 的 npm 包最小化设置
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 检测对象或数组
  • 蓝海存储开关机注意事项总结
  • 前端攻城师
  • 深度学习入门:10门免费线上课程推荐
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 我这样减少了26.5M Java内存!
  • 消息队列系列二(IOT中消息队列的应用)
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #laravel 通过手动安装依赖PHPExcel#
  • #pragma once
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (3)llvm ir转换过程
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (分类)KNN算法- 参数调优
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (四)JPA - JQPL 实现增删改查
  • (正则)提取页面里的img标签
  • (转)mysql使用Navicat 导出和导入数据库
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .gitignore文件设置了忽略但不生效
  • .net core 3.0 linux,.NET Core 3.0 的新增功能