Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, dtretyakov, Вы писали:
D>>Чтобы при этом получить тот же самый environment что и в Developer Command Prompt нужно перед MSBuild шагом добавить Command Line шаг в котором сначала вызывается нужный bat файл, задающий environment, а затем выполнить его capture для последующих шагов:
D>>"%VS2017_Path%\..\Tools\VsDevCmd.bat"
D>>%env.TEAMCITY_CAPTURE_ENV%
S>Спасиб! Помогло, но не до конца. В логе сборки:
S>S>Starting: E:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.MsBuildBootstrap.exe
S> /workdir:E:\BuildAgent\work\f0fe40554766ab39
S> /msbuildPath:C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\bin\MSBuild.exe
S>
S>msbuildPath должен на msbuild из состава студии указывать. Что-то типа
S>S>C:\Program Files (x86)\Microsoft Visual Studio\2017\%edition%\MSBuild\15.0\Bin\MSBuild.exe
S>
На TeamCity агенте при старте выбирается та версия MSBuild, которая имеет наибольший номер сборки в рамках major номера версии (15.хх.хх). Если на этой машине отдельно установлены Build Tools от VS 2017, то они также могут задетектиться на этом агенте. Это можно проверить на вкладке агента в Agent Parameters -> Configuration Parameters как значение параметра MSBuildTools15.0_x86_Path.
Если это так и на этой машине установлены side by side Visual Studio 2017 и Build Tools 2017, то как workaround можно:
* Удалить Build Tools 2017 и перезапустить TeamCity агента
* Использовать Visual Studio (sln) build step
* Использовать Command line build step, в котором выполнить "%VS2017_Path%\..\..\MSBuild\15.0\bin\MSBuild.exe" ...