-
-
Save ArthurHNL/b29f008cbc7a159a6ae82a7152b1cb2a to your computer and use it in GitHub Desktop.
| $vsPath = &(Join-Path ${env:ProgramFiles(x86)} "\Microsoft Visual Studio\Installer\vswhere.exe") -property installationpath | |
| Import-Module (Join-Path $vsPath "Common7\Tools\vsdevshell\Microsoft.VisualStudio.DevShell.dll") | |
| Enter-VsDevShell -VsInstallPath $vsPath -SkipAutomaticLocation |
I made it for 2019.
Any hint on how to make a generic script that works with any version of visual studio ?
On line #2 remove "vsdevshell" and then it works for me in Visual Studio 2019.
Import-Module (Join-Path $vsPath "Common7\Tools\Microsoft.VisualStudio.DevShell.dll")
A slightly more future proof line #2:
Import-Module (Get-ChildItem $vsPath -Recurse -File -Filter Microsoft.VisualStudio.DevShell.dll).FullName
A full-blown script, pwsh-dev-x64.ps1:
# usage:
# $ pwsh-dev-x64.ps1 [MSVC|Clang]
param(
[String] $Compiler = "MSVC"
)
if ($Compiler -ne "MSVC" -and $Compiler -ne "Clang") {
Write-Error "Unknown compiler '$Compiler'; must be MSVC or Clang"
Exit -1
}
Write-Host "Setting up environment variables..."
# Visual Studio path <https://github.com/microsoft/vswhere/wiki/Find-VC>
$vsPath = &"${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationpath
Write-Host "Microsoft Visual Studio path = '$vsPath'"
# Use module `Microsoft.VisualStudio.DevShell.dll`
Import-Module (Get-ChildItem $vsPath -Recurse -File -Filter Microsoft.VisualStudio.DevShell.dll).FullName
Enter-VsDevShell -VsInstallPath $vsPath -SkipAutomaticLocation -DevCmdArguments '-arch=x64'
# NOTE: `-DevCmdArguments` are arguments to `vsdevcmd.bat`
# Select compiler
if ($Compiler -eq "MSVC") {
$_Compiler = "MSVC"
Set-Item -Path "env:CC" -Value "cl.exe"
Set-Item -Path "env:CXX" -Value "cl.exe"
}
elseif ($Compiler -eq "Clang") {
$_Compiler = "Clang"
Set-Item -Path "env:CC" -Value "clang-cl.exe"
Set-Item -Path "env:CXX" -Value "clang-cl.exe"
}
Write-Host "Selecting $_Compiler as C/C++ compiler."
Doesn't work for VS Build Tools (i.e. when no IDE is installed).
@AlQuemiste Thanks!
A slightly more future proof line #2:
Import-Module (Get-ChildItem $vsPath -Recurse -File -Filter Microsoft.VisualStudio.DevShell.dll).FullName
Works fine with Windows 11 and VS2022 Pro
I installed "Visual Studio Build Tools 2026" on Windows 11. I can do:
cd "C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\Common7\Tools"
.\Launch-VsDevShell.ps1which makes clang.exe available in PATH. I have not tested it with the full blown installation of Visual Studio 2026.
Does not work on Visual Studio 2017 Professional.