1 # we want more secure TLS 1.2 for most things 2 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; 3 4 # VS17.x is 2022 5 $msvc_url = 'https://aka.ms/vs/17/release/vs_buildtools.exe' 6 7 Write-Host "Downloading Visual Studio 2022 build tools at:" 8 Get-Date 9 Invoke-WebRequest -Uri $msvc_url -OutFile C:\vs_buildtools.exe 10 11 Write-Host "Installing Visual Studio 2022 at:" 12 Get-Date 13 # Command line 14 # https://docs.microsoft.com/en-us/visualstudio/install/command-line-parameter-examples?view=vs-2022 15 # Component ids 16 # https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022 17 # https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-community?view=vs-2022 18 Start-Process -NoNewWindow -Wait -FilePath C:\vs_buildtools.exe ` 19 -ArgumentList ` 20 "--wait", ` 21 "--quiet", ` 22 "--norestart", ` 23 "--nocache", ` 24 "--installPath", "C:\BuildTools", ` 25 "--add", "Microsoft.VisualStudio.Component.VC.Redist.14.Latest", ` 26 "--add", "Microsoft.VisualStudio.Component.VC.ASAN", ` # MSVC 2022 27 "--add", "Microsoft.VisualStudio.Component.VC.ATL", ` 28 "--add", "Microsoft.VisualStudio.Component.VC.ATLMFC", ` 29 "--add", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", ` 30 "--add", "Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL", ` # MSVC 2019 31 "--add", "Microsoft.VisualStudio.Component.VC.14.29.16.11.MFC", ` 32 "--add", "Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64", ` 33 "--add", "Microsoft.VisualStudio.Component.VC.Llvm.Clang", ` 34 "--add", "Microsoft.VisualStudio.Component.Graphics.Tools", ` 35 "--add", "Microsoft.VisualStudio.Component.Windows10SDK.20348" 36 37 if (!$?) { 38 Write-Host "Failed to install Visual Studio tools" 39 Exit 1 40 } 41 Remove-Item C:\vs_buildtools.exe -Force 42 43 Write-Host "Installing Visual Studio 2022 finished at:" 44 Get-Date 45 46 Exit 0 47