early-access version 2853
This commit is contained in:
		
							
								
								
									
										89
									
								
								externals/vcpkg/scripts/azure-pipelines/windows/deploy-visual-studio.ps1
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										89
									
								
								externals/vcpkg/scripts/azure-pipelines/windows/deploy-visual-studio.ps1
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,89 @@ | ||||
| # Copyright (c) Microsoft Corporation. | ||||
| # SPDX-License-Identifier: MIT | ||||
|  | ||||
| # REPLACE WITH DROP-TO-ADMIN-USER-PREFIX.ps1 | ||||
|  | ||||
| # REPLACE WITH UTILITY-PREFIX.ps1 | ||||
|  | ||||
| $VisualStudioBootstrapperUrl = 'https://aka.ms/vs/17/release/vs_enterprise.exe' | ||||
| $Workloads = @( | ||||
|   'Microsoft.VisualStudio.Workload.NativeDesktop', | ||||
|   'Microsoft.VisualStudio.Workload.Universal', | ||||
|   'Microsoft.VisualStudio.Component.VC.Tools.x86.x64', | ||||
|   'Microsoft.VisualStudio.Component.VC.Tools.ARM', | ||||
|   'Microsoft.VisualStudio.Component.VC.Tools.ARM64', | ||||
|   'Microsoft.VisualStudio.Component.VC.ATL', | ||||
|   'Microsoft.VisualStudio.Component.VC.ATLMFC', | ||||
|   'Microsoft.VisualStudio.Component.VC.ATL.ARM', | ||||
|   'Microsoft.VisualStudio.Component.VC.ATL.ARM64', | ||||
|   'Microsoft.VisualStudio.Component.VC.MFC.ARM', | ||||
|   'Microsoft.VisualStudio.Component.VC.MFC.ARM64', | ||||
|   'Microsoft.VisualStudio.Component.Windows10SDK', | ||||
|   'Microsoft.Net.Component.4.8.SDK', | ||||
|   'Microsoft.Net.Component.4.7.2.TargetingPack', | ||||
|   'Microsoft.Component.NetFX.Native', | ||||
|   'Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset', | ||||
|   'Microsoft.VisualStudio.Component.VC.Llvm.Clang', | ||||
|   'Microsoft.VisualStudio.ComponentGroup.UWP.VC.BuildTools', | ||||
|   'Microsoft.VisualStudio.Component.VC.CMake.Project' | ||||
| ) | ||||
|  | ||||
| <# | ||||
| .SYNOPSIS | ||||
| Install Visual Studio. | ||||
|  | ||||
| .DESCRIPTION | ||||
| InstallVisualStudio takes the $Workloads array, and installs it with the | ||||
| installer that's pointed at by $BootstrapperUrl. | ||||
|  | ||||
| .PARAMETER Workloads | ||||
| The set of VS workloads to install. | ||||
|  | ||||
| .PARAMETER BootstrapperUrl | ||||
| The URL of the Visual Studio installer, i.e. one of vs_*.exe. | ||||
|  | ||||
| .PARAMETER InstallPath | ||||
| The path to install Visual Studio at. | ||||
|  | ||||
| .PARAMETER Nickname | ||||
| The nickname to give the installation. | ||||
| #> | ||||
| Function InstallVisualStudio { | ||||
|   Param( | ||||
|     [String[]]$Workloads, | ||||
|     [String]$BootstrapperUrl, | ||||
|     [String]$InstallPath = $null, | ||||
|     [String]$Nickname = $null | ||||
|   ) | ||||
|  | ||||
|   try { | ||||
|     Write-Host 'Downloading Visual Studio...' | ||||
|     [string]$bootstrapperExe = Get-TempFilePath -Extension 'exe' | ||||
|     curl.exe -L -o $bootstrapperExe -s -S $BootstrapperUrl | ||||
|     Write-Host 'Installing Visual Studio...' | ||||
|     $vsArgs = @('/c', $bootstrapperExe, '--quiet', '--norestart', '--wait', '--nocache') | ||||
|     foreach ($workload in $Workloads) { | ||||
|       $vsArgs += '--add' | ||||
|       $vsArgs += $workload | ||||
|     } | ||||
|  | ||||
|     if (-not ([String]::IsNullOrWhiteSpace($InstallPath))) { | ||||
|       $vsArgs += '--installpath' | ||||
|       $vsArgs += $InstallPath | ||||
|     } | ||||
|  | ||||
|     if (-not ([String]::IsNullOrWhiteSpace($Nickname))) { | ||||
|       $vsArgs += '--nickname' | ||||
|       $vsArgs += $Nickname | ||||
|     } | ||||
|  | ||||
|     $proc = Start-Process -FilePath cmd.exe -ArgumentList $vsArgs -Wait -PassThru | ||||
|     PrintMsiExitCodeMessage $proc.ExitCode | ||||
|   } | ||||
|   catch { | ||||
|     Write-Error "Failed to install Visual Studio! $($_.Exception.Message)" | ||||
|     throw | ||||
|   } | ||||
| } | ||||
|  | ||||
| InstallVisualStudio -Workloads $Workloads -BootstrapperUrl $VisualStudioBootstrapperUrl -Nickname 'Stable' | ||||
		Reference in New Issue
	
	Block a user