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