@ -10,7 +10,7 @@ if (-not ([bool](net session 2>$null))) {
}
$VSVer = " 17 "
$ExeFile = " vs_BuildTools .exe "
$ExeFile = " vs_community .exe "
$Uri = " https://aka.ms/vs/ $ VSVer/release/ $ ExeFile "
$Destination = " ./ $ ExeFile "
@ -19,21 +19,39 @@ $WebClient = New-Object System.Net.WebClient
$WebClient . DownloadFile ( $Uri , $Destination )
Write-Host " Finished downloading $ ExeFile "
$VSROOT = " C:/VSBuildTools/ $ VSVer "
$Arguments = @ (
" --installPath `" $ VSROOT `" " , # set custom installation path
" --quiet " , # suppress UI
" --wait " , # wait for installation to complete
" --norestart " , # prevent automatic restart
" --add Microsoft.VisualStudio.Workload.VCTools " , # add C++ build tools workload
" --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 " , # add core x86/x64 C++ tools
" --add Microsoft.VisualStudio.Component.Windows10SDK.19041 " # add specific Windows SDK
" --quiet " , # Suppress installer UI
" --wait " , # Wait for installation to complete
" --norestart " , # Prevent automatic restart
" --force " , # Force installation even if components are already installed
" --add Microsoft.VisualStudio.Workload.NativeDesktop " , # Desktop development with C++
" --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 " , # Core C++ compiler/tools for x86/x64
" --add Microsoft.VisualStudio.Component.Windows11SDK.26100 " , # Windows 11 SDK (26100)
" --add Microsoft.VisualStudio.Component.Windows10SDK.19041 " , # Windows 10 SDK (19041)
" --add Microsoft.VisualStudio.Component.VC.Llvm.Clang " , # LLVM Clang compiler
" --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset " , # LLVM Clang integration toolset
" --add Microsoft.VisualStudio.Component.Windows11SDK.22621 " , # Windows 11 SDK (22621)
" --add Microsoft.VisualStudio.Component.VC.CMake.Project " , # CMake project support
" --add Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 " , # VC++ 14.2 toolset
" --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang " # LLVM Clang for native desktop
)
Write-Host " Installing Visual Studio Build Tools "
$InstallProcess = Start-Process -FilePath $Destination -NoNewWindow -PassThru -Wait -ArgumentList $Arguments
$ExitCode = $InstallProcess . ExitCode
$InstallProcess = Start-Process -FilePath $Destination -NoNewWindow -PassThru -ArgumentList $Arguments
# Spinner while installing
$Spinner = " |/-\ "
$i = 0
while ( -not $InstallProcess . HasExited ) {
Write-Host -NoNewline ( " `r Installing... " + $Spinner [ $i % $Spinner . Length ] )
Start-Sleep -Milliseconds 250
$i + +
}
# Clear spinner line
Write-Host " `r Setup completed! "
$ExitCode = $InstallProcess . ExitCode
if ( $ExitCode -ne 0 ) {
Write-Host " Error installing Visual Studio Build Tools (Error: $ ExitCode) "
Exit $ExitCode