Можно найти реестр MSBuild 15.0 - PullRequest
       11

Можно найти реестр MSBuild 15.0

0 голосов
/ 08 ноября 2018

У меня есть старый проект, созданный Visual Studio 2015, и я использую bat-файл для получения реестра MSBuild 14.0 в этом событии сборки проекта.Теперь мне нужно обновить свой проект до Visual Studio 2017, поэтому мне нужно обновить bat-файл, чтобы получить MSbuild 15.0, но я не смог его найти.

В Visual Studio 2015: путь к реестру:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0

Значение:

C:\Program Files (x86)\MSBuild\14.0\Bin

Но для Visual Studio 2017 я не смог найти путь к реестру.

Как получитьснова значение реестра для Visual Studio 2017?

1 Ответ

0 голосов
/ 09 ноября 2018

Как снова получить значение реестра для Visual Studio 2017?

Вам следует прочитать следующую ветку:

vswhere

На протяжении многих лет Visual Studio можно было открывать с помощью ключей реестра, но с недавними изменениями в моделях развертывания и расширения новый метод необходим для обнаружения возможно более одного раза установлен пример. Эти изменения облегчают меньшую, более быструю установку по умолчанию дополняется установкой по требованию других рабочих нагрузок и компонентов.

vswhere спроектирован как распространяемый однофайловый исполняемый файл которые можно использовать в сценариях сборки или развертывания, чтобы найти, где Visual Studio - или другие продукты в семействе Visual Studio - находится. Например, если вы знаете относительный путь к MSBuild, вы можете найти корень Visual Studio установить и объединить пути, чтобы найти что тебе нужно.

vshere включен в установщик с Visual Studio 2017 версия 15.2 и выше, и может быть найдена в следующем месте: % ProgramFiles (x86)% \ Microsoft Visual Studio \ Installer \ vswhere.exe.

И вы используете команду, подобную следующей, чтобы найти последнюю установленную версию:

@echo off

for /f "usebackq tokens=1* delims=: " %%i in (`vswhere -latest -requires Microsoft.Component.MSBuild`) do (
  if /i "%%i"=="installationPath" set InstallDir=%%j
)

if exist "%InstallDir%\MSBuild\15.0\Bin\MSBuild.exe" (
  "%InstallDir%\MSBuild\15.0\Bin\MSBuild.exe" %*
)

Надеюсь, это поможет.

...