forked from dexyfex/CodeWalker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFind-MSBuild.ps1
More file actions
38 lines (34 loc) · 1.77 KB
/
Find-MSBuild.ps1
File metadata and controls
38 lines (34 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Common function to find MSBuild
# Returns the path to MSBuild.exe or exits with error if not found
function Find-MSBuild {
$msbuildPaths = @(
"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe",
"C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe",
"C:\Program Files (x86)\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe",
"C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe",
"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe",
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe",
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe",
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"
)
# Check common installation paths
foreach ($path in $msbuildPaths) {
if (Test-Path $path) {
return $path
}
}
# Try to find in PATH
$msbuild = (Get-Command msbuild -ErrorAction SilentlyContinue).Source
if ($null -ne $msbuild) {
return $msbuild
}
# Not found
Write-Host "ERROR: MSBuild not found!" -ForegroundColor Red
Write-Host "Please install Visual Studio 2019 or 2022 with MSBuild." -ForegroundColor Yellow
Write-Host ""
Write-Host "You can download Visual Studio from:" -ForegroundColor Cyan
Write-Host " https://visualstudio.microsoft.com/downloads/" -ForegroundColor Cyan
Write-Host ""
Write-Host "Make sure to install the '.NET desktop development' workload." -ForegroundColor Yellow
exit 1
}