mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-03 15:19:00 +08:00
38 lines
1.0 KiB
PowerShell
38 lines
1.0 KiB
PowerShell
[CmdletBinding()]
|
|
param(
|
|
|
|
)
|
|
|
|
$scriptsDir = split-path -parent $MyInvocation.MyCommand.Definition
|
|
$vswhereExe = & $scriptsDir\fetchDependency.ps1 "vswhere"
|
|
|
|
$output = & $vswhereExe -prerelease -legacy -products * -format xml
|
|
[xml]$asXml = $output
|
|
|
|
$results = New-Object System.Collections.ArrayList
|
|
foreach ($instance in $asXml.instances.instance)
|
|
{
|
|
$installationPath = $instance.InstallationPath -replace "\\$" # Remove potential trailing backslash
|
|
$installationVersion = $instance.InstallationVersion
|
|
$isPrerelease = $instance.IsPrerelease
|
|
if ($isPrerelease -eq 0)
|
|
{
|
|
$releaseType = "PreferenceWeight3::StableRelease"
|
|
}
|
|
elseif ($isPrerelease -eq 1)
|
|
{
|
|
$releaseType = "PreferenceWeight2::PreRelease"
|
|
}
|
|
else
|
|
{
|
|
$releaseType = "PreferenceWeight1::Legacy"
|
|
}
|
|
|
|
# Placed like that for easy sorting according to preference
|
|
$results.Add("${releaseType}::${installationVersion}::${installationPath}") > $null
|
|
}
|
|
|
|
$results.Sort()
|
|
$results.Reverse()
|
|
|
|
return $results |