1.下载 Visual Studio 引导程序
以community版本为例,即下载vs_community.exe文件。
2.创建Layout
比如我需要安装unity3d、python、nodejs的相关的开发,我需要安装以下模块:
Microsoft.VisualStudio.Component.Unity
Microsoft.VisualStudio.Workload.ManagedDesktop
Microsoft.VisualStudio.Workload.Python
Microsoft.VisualStudio.Workload.Node
具体工作负载和组件ID参考下面链接:
Visual Studio Community 工作负载和组件 ID | Microsoft Learn
执行以下命令创建Layout:
bash
D:\localVSlayout\vs_community.exe ^
--layout D:\localVSlayout ^
--add Microsoft.VisualStudio.Component.Unity ^
--add Microsoft.VisualStudio.Workload.ManagedDesktop ^
--add Microsoft.VisualStudio.Workload.Python ^
--add Microsoft.VisualStudio.Workload.Node ^
--includeOptional
3.启动Http服务
将 D:\localVSlayout设置为Http服务的根目录。
以python为例启动Http服务。
python
cd /d D:\localVSlayout
python -m http.server 8001
4.执行离线安装
设置以下脚本LayoutUri和BootstrapperName参数,然后在powershell中执行以下脚本进行安装即可。
bash
#Do the initial installation from the web hosted layout onto the client in an elevated PowerShell script
#ADMIN CONFIGURATION
#Enter layout URI here.上边启动的http服务地址
$LayoutUri = "http://localhost:8001"
#Enter bootstrapper name which is present in layout.根据自己的版本修改
$BootstrapperName = "vs_Community.exe"
#Add any arguments which you intend to send to bootstrapper.
$Arguments = "--passive --wait"
#SCRIPT FUNCTIONALITY
#Forming URI for bootstrapper
Write-Verbose "LayoutUri: $LayoutUri"
$BootstrapperUri = "$LayoutUri/$BootstrapperName"
Write-Verbose "BootstrapperUri: $BootstrapperUri"
$Arguments += " --layoutUri $LayoutUri"
Write-Verbose "Arguments: $Arguments"
#Creating temp folder and download bootstrapper
$VSLayoutFolderPath = Join-Path -Path $env:TEMP -ChildPath VSLayout
$BootstrapperFile = Join-Path -Path $VSLayoutFolderPath -ChildPath $BootstrapperName
Write-Verbose "The bootstrapper path is: $BootstrapperFile"
if (Test-Path $VSLayoutFolderPath)
{
Write-Verbose "The directory exists - $VSLayoutFolderPath"
if (Test-Path $BootstrapperFile)
{
Write-Verbose "Deleting file - $BootstrapperFile"
Remove-Item $BootstrapperFile
}
}
else
{
Write-Verbose "Creating folder - $VSLayoutFolderPath"
New-Item -ItemType Directory -Path $VSLayoutFolderPath
}
Write-Verbose "Downloading bootstrapper from - $BootstrapperUri to $BootstrapperFile"
Invoke-WebRequest -Uri $BootstrapperUri -OutFile $BootstrapperFile
Write-Verbose "Starting bootstrapper -$BootstrapperFile with arguments $Arguments"
start-process $BootstrapperFile $Arguments
注意
本文主要参考微软官方文档,文档很详尽,本文只介绍最基础的离线安装,更多功能还是要认真阅读官方文档。