windows/internal/vs2017_install.ps1 (25 lines of code) (raw):

$VS_DOWNLOAD_LINK = "https://aka.ms/vs/15/release/vs_buildtools.exe" $VS_INSTALL_ARGS = @("--nocache","--quiet","--wait", "--add Microsoft.VisualStudio.Workload.VCTools", "--add Microsoft.Component.MSBuild", "--add Microsoft.VisualStudio.Component.Roslyn.Compiler", "--add Microsoft.VisualStudio.Component.TextTemplating", "--add Microsoft.VisualStudio.Component.VC.CoreIde", "--add Microsoft.VisualStudio.Component.VC.Redist.14.Latest", "--add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core", "--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64", "--add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Win81") if ($args.Count -ne 0) { $VS_INSTALL_ARGS += "--add Microsoft.VisualStudio.Component.VC.Tools.$($args[0])" } curl.exe --retry 3 -kL $VS_DOWNLOAD_LINK --output vs_installer.exe if ($LASTEXITCODE -ne 0) { echo "Download of the VS 2017 installer failed" exit 1 } $process = Start-Process "${PWD}\vs_installer.exe" -ArgumentList $VS_INSTALL_ARGS -NoNewWindow -Wait -PassThru Remove-Item -Path vs_installer.exe -Force $exitCode = $process.ExitCode if (($exitCode -ne 0) -and ($exitCode -ne 3010)) { echo "VS 2017 installer exited with code $exitCode, which should be one of [0, 3010]." exit 1 }