Запустите MSBuild из командной строки в Azure Devops - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь выполнить msbuild в Azure Devops.Из-за этого я не могу использовать предоставленную задачу MSBuild.

Когда я использую задачу командной строки, команда не распознается.На локальном компьютере я загружаю vcvarsall.bat, прежде чем использовать msbuild.Но я не смог выяснить, как получить этот путь в Azure Devops.Похоже, что не является задачей Develop Command Prompt для Azue Devops.

Есть какие-либо идеи о том, как я могу использовать msbuild из задачи командной строки или пакетного сценария?Используя их размещенный агент VS.

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Лучший способ сделать это поддерживаемым способом - использовать vswhere.Следующий фрагмент скрипта установит vswhere (используя chocolatey), а затем запросит реестр установщика, где можно найти msbuild.Замените -latest более конкретной версией, если вам нужно:

choco install vswhere
for /f "tokens=*" %%i in ('vswhere -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe -nologo') do set msbuildpath="%%i"

echo "##vso[task.setvariable variable=msbuildpath]%msbuildpath%"

Это сохранит путь к msbuild для переменной окружения %msbuildpath%, а также переменную конвейера (для этого этапа) $(msbuildpath).

Затем вы можете либо использовать задачу командной строки второго запуска и передать $(msbuildpath), либо вы можете просто вызвать MsBuild из того же фрагмента скрипта, упомянутого выше, вызвав:

%msbuildpath%

Это гарантирует, что ваш сценарий будет работать, даже если Microsoft обновит свои изображения и переместит некоторые вещи (что происходит).

Вы также можете получить vswhere, используя wget или invoke-webrequest -outfile из следующего местоположения:

https://github.com/Microsoft/vswhere/releases/latest/download/vswhere.exe

Другие выборки для синтаксиса vswhere можно найти в вики проекта , включая синтаксис для PowerShell.

0 голосов
/ 08 марта 2019

Если вам интересно узнать, как встроенная задача Microsoft разрешает путь, все задачи Azure Devops предоставляются с открытым исходным кодом.Это функции пути , которые вы, вероятно, захотите просмотреть.

0 голосов
/ 04 марта 2019

Если вы используете Hosted Agent 2017, вы можете запустить задачу msbuild.exe из командной строки следующим образом:

Версия командной строки 1: enter image description here

Версия командной строки 2:

enter image description here

Результаты:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...