我有一個powershell腳本,查看VS安裝列表,並確定安裝的最高版本。然後它使用該版本的InstallDir,並使用它來訪問各種命令。確定2017年安裝的Visual Studio路徑
它仍然使用較低的版本,但是。
從VS2017開始,似乎註冊表項是no longer saved in the same way。我需要更新腳本才能找出2017年的設置。
#Add New Versions to this list when new versions of VS are released
$VsVersionsToDisable = "10.0", "11.0", "12.0", "14.0"
[System.Collections.ArrayList]$VsVersions = $VsVersionsToDisable
#Find the Highest installed VS Version, and use it for the TFS.exe Command.
foreach ($version in $VsVersions | Sort-Object -Descending)
{
$keyPath = "HKCU:\Software\Microsoft\VisualStudio\$version`_Config"
If (Test-Path $keyPath)
{
$aliasPath = Get-ItemProperty -Path $keyPath | Select-Object `
-ExpandProperty InstallDir
$proxyPath = Join-Path $aliasPath "tf.exe"
set-alias proxyTF $proxyPath
}
}
爲了避免XY的問題:我們使用這個腳本爲用戶配置TFS代理設置。它確定最高安裝版本,使用它來查找代理,然後使用相同的值遍歷配置其代理設置的較低版本。
確定VS2017的安裝目錄(以及還有tf.exe
位置)的最佳方法是什麼?
值得指出的是,VS2017允許多個安裝相同的版本(例如,您可以將Community,Pro和Enterprise全部安裝到不同的路徑),並且我不確定哪個人能夠在此獲得註冊表值案件。 – Jimmy
這種方法是完全正確的,這個註冊表項只列出對應於VS2017第一種安裝類型的條目。假設你先安裝社區版,然後安裝企業。註冊表項將在您首先安裝時繼續指向社區版路徑。現在,如果你甚至卸載社區版本,註冊表入口還是應該社區版本。 –
有關如何在PowerShell中提取'15.0'值的信息,請參見[answer](https://stackoverflow.com/a/43912590/285795)。 – OmegaMan