Решение состояло в том, чтобы изменить вышеприведенную линию Powershell, чтобы:

ановил инструменты MSBuild (15.4.0) для Visual Studio 2017 на сервере сборки. Для этого я использовал ссылку «Инструменты сборки для Visual Studio 2017» изЗагрузки Visual Studio

Путь к MSBuild.exe:

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin

Я добавил этот путь к переменной среды «путь».

У меня есть сценарий PowerShell со следующим в качестве тела для задачи сборки:

msbuild '.. \ MyApplication.sln' / t: сборка /tv:15.0 / p: GenerateBuildInfoConfigFile = false / p: конфигурация = выпуск / p: RunCodeAnalysis = True /p:VisualStudioVersion=15.0

Но когда это выполняется (все обрабатывается TeamCity), я нахожу в журнале следующее:

MSBUILD: ошибка MSB1040: неверная версия ToolsVersion. Версия инструмента "15.0" не распознана. Доступные версии инструментов: «2.0», «3.5», «4.0».

документация предлагает 15.0 должно быть правильным.

РЕДАКТИРОВАТЬ Из документации на 2017 годЧто нового в MSBuild 15 Говорится:

MSBuildToolsVersion для этой версии инструментов составляет 15.0. Версия сборки 15.1.0.0.

Тем не менее, документация 2017 годаСправочник по командной строке MSBuild состояния:

Для MSBuild4.5можно указать следующие значения для версии: 2.0, 3.5 и 4.0. Если вы укажете 4.0, свойство сборки VisualStudioVersion указывает, какой поднабор инструментов использовать. Для получения дополнительной информации см. Раздел «Наборы вспомогательных инструментов» в наборе инструментов (ToolsVersion).

Так что меня немного смущает номенклатура: MSBuild 15 или MSBuild 4.5 ...?

 Leo Liu-MSFT23 окт. 2017 г., 03:53
Как насчет запуска командной строки сборки из CMD напрямую? Я установил этот путь со своей стороны и успешно создал пустой проект Visual Studio 2017. Вы можете попытаться создать пустой проект с помощью Visual Studio 2017, а затем построить на сервере сборки описанным выше способом.
 DrGriff20 окт. 2017 г., 09:55
@Hans: C: \ Users \ Me> где msbuild.exeC: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin \ MSBuild.exe
 Hans Passant19 окт. 2017 г., 19:45
ПУТЬ, разрушитель благих намерений. Введите "где msbuild.exe", и вы, вероятно, увидите неправильный в списке первым.

Ответы на вопрос(1)

Решение Вопроса

Решение состояло в том, чтобы изменить вышеприведенную линию Powershell, чтобы:

$msbuild = 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe'
    & msbuild '..\MyApplication.sln' /t:Build /m /p:GenerateBuildInfoConfigFile=false /p:Configuration=Release /p:RunCodeAnalysis=True /p:VisualStudioVersion=15.0

Ваш ответ на вопрос