} catch {}
if ("$msbuildexe" -eq "") {
Write-Debug "tools version $toolsnum"
- if ($toolsnum -gt 14) { # VC15 ~ VC16
+ if ($toolsnum -gt 14) { # VC15 ~ VC??
$msbuildexe = msbfind_15_xx $toolsnum
} else { # VC10 ~ VC14
$msbuildexe = msbfind_10_14 "${toolsnum}.0"
return "${msbindir}msbuild"
}
-# find msbuild.exe for VC15 ~ VC16
+# find msbuild.exe for VC15 ~ VC??
function msbfind_15_xx
{
[CmdletBinding()]
# $dumpbinexe="$env:DUMPBINEXE"
if ($dumpbinexe -eq "") {
$searching = $true
- for ($i = $CurMaxVc; $searching -and ($i -ge 14); $i--) # VC15 ~ VC16
+ for ($i = $CurMaxVc; $searching -and ($i -ge 14); $i--) # VC15 ~ VC??
{
$vsdir = Find-VSDir $i
if ("$vsdir" -ne "") {
if ((env_vcversion_no) -eq $vcversion_no) {
return $env:VSINSTALLDIR
}
- if ($vcversion_no -gt 14) { # VC15 ~ VC16
+ if ($vcversion_no -gt 14) { # VC15 ~ VC??
return find_vsdir_15_xx ${vcversion_no}
} else { # VC10 ~ VC14
$comntools = [environment]::getenvironmentvariable("VS${vcversion_no}0COMNTOOLS")
[bool]$vssetup_available = $true
$vssetup = $null
-# find vs installation path for VC15 ~ VC16
+# find vs installation path for VC15 ~ VC??
function find_vs_installation
{
[CmdletBinding()]
}
$vsarray = @{VC15 = "2017"; VC16 = "2019"; VC17 = "2022"}
-# find VS dir for VC15 ~ VC16
+# find VS dir for VC15 ~ VC??
function find_default_msbuild_path
{
[CmdletBinding()]
if ($vsdir -eq "")
{
$toolsnum = [int]$toolsver
- if ($env:PROCESSOR_ARCHITECTURE -eq "x86" -or $env:PROCESSOR_ARCHITECTURE -eq "ARM64") {
+ # As of Visual Studio 2022 (VC17), MSBuild is 64-bit and so is always in ProgramFiles
+ if ($env:PROCESSOR_ARCHITECTURE -eq "x86" -or $toolsver -ge 17) {
$pgmfs = "$env:ProgramFiles"
} else {
$pgmfs = "${env:ProgramFiles(x86)}"
return ""
}
-# find VS dir for VC15 ~ VC16
+# find VS dir for VC15 ~ VC??
function find_vsdir_15_xx
{
[CmdletBinding()]