Неудовлетворенное требование города группы: существует MSBuildTools12.0_x86_Path

117

У меня установлен TeamCity на машине с Windows x32 Server2008. Я запустил веб-установку .net 4.5. Я также скопировал файлы с моей x64-машины на основе этой статьи, так что мне не нужно было устанавливать vs2012 (хотя у меня было изменение пути для удаления x86 на 32-битной машине):

MSBuild в TeamCity решения Visual Studio 2012

Я не могу заставить локальный агент запустить сборку, которую я установил для msbuild в проекте vs2012 или vs2010. Я продолжаю получать:

Неудовлетворенные требования: существует MSBuildTools12.0_x86_Path

Я перезапускал сервер несколько раз, а также перезапускал агент. Я пробовал немного поиграть с переменными пути, но не могу понять, что мне не хватает. Я также посмотрел в Параметры конфигурации и увидел следующее:

MSBuildTools2.0_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727

MSBuildTools3.5_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v3.5

MSBuildTools4.0_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319

Как мне получить там 12.0?

archangel76
источник
У вас все еще есть проблемы с TeamCity?
Daniel Hollinrake
Время, которое мне потребовалось, чтобы понять это, потребовало от меня приостановки проекта. Я надеюсь вернуться к нему весной.
archangel76
Мне потребовалось время, чтобы все заработало. Я думаю, что суть этого заключалась в установке MSBuild и обновлении Web Deploy.
Daniel Hollinrake

Ответы:

149

Мне нужно было установить MSBuild отдельно, тогда после перезапуска агента переменная была там.

(Из статьи MSDN) MSBuild теперь устанавливается как часть Visual Studio, а не как часть .NET Framework. Текущий номер версии MSBuild - 12.0. Если вы хотите установить MSBuild отдельно, загрузите установочный пакет из MSBuild Download.

изменить: ссылка для ответа не работает. Вот ссылка на Microsoft Build Tools 2015 (с недавнего времени по сегодняшний день): https://www.microsoft.com/en-us/download/details.aspx?id=48159

JMW
источник
8
Следует отметить, что вам понадобится .NET Framework версии 4.5.1 (находится здесь: microsoft.com/en-ca/download/details.aspx?id=40779 ) для установки MSBuild12.0.
Brandon
37
Чтобы перезапустить агент: 1. Перейдите на сервер сборки. 2. Запустите services.msc из меню «Пуск». 3. Найдите агента TeamCity, остановите службу и перезапустите ее. Это может показаться очевидным опытным ветеринарам TeamCity, но не новичкам вроде меня. :)
Хаим Элия
5
Хотя у меня установлены MS Build Tools 2013, переменная MSBuildTools12.0_x86_Path все еще не установлена, и агент не запускается. Есть ли способ установить его вручную?
bdaniel7
Пришлось перейти в этот каталог и запустить vcvars64.bat: C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin \ amd64 Затем msbuild работал для меня.
user8128167 07
5
По умолчанию, когда я использовал автоматическое обнаружение файла sln и мое решение было установлено на Visual Studio 2013. Я перешел на Visual Studio 2015, установленный на агенте.
ptittof57
33

Немного запоздалый ответ, но если ваш проект основан на VS 2012, и вы используете автоматически определяемый этап сборки файла решения, редактирование этого шага и выбор «Microsoft Visual Studio 2012» в раскрывающемся списке «Visual Studio» устраняет эту проблему. как хорошо (и, ИМХО, правильнее).

Харпер Шелби
источник
2
Совсем не поздно! У меня была эта проблема сегодня, и изменение версии VS на VS 2015 избавило от сообщения о неудовлетворенных требованиях
Судханшу Мишра
Это сработало для меня, свежий сервер TeamCity 10 VS2015 (был старый проект 2013 года)
Rippo
2
Да, моя проблема заключалась в том, что неправильная версия Visual Studio была «автоматически выбрана» командой City при выборе автоматического определения шагов сборки из параметра «Создать проект из URL-адреса», поэтому я просто перешел на шаг сборки и изменил Версия Visual Studio, чтобы исправить это. Я надеюсь, что люди сначала проверит ваш ответ, прежде чем пытаться установить вещи, которые могут им не понадобиться в ответе jmw.
starmandeluxe
18

У меня была та же проблема, и в конце выяснилось, что мой определенный шаг сборки для запуска MSBuild был настроен неправильно.

На этапе сборки MSBuild параметр «MSBuild ToolsVersion» был установлен на 12.0 (по умолчанию), что приводило к ошибке «Неудовлетворенные требования: существует MSBuildTools12.0_x86_Path» в моей системе. Поскольку мне не нужен новый MSBuild 12.0 для запуска моей сборки, я изменил этот параметр на 4.0 на этапе сборки. Эта версия MSBuild правильно установлена ​​в моей системе. Это решило проблему для меня.

Андреас Шуэрманн
источник
10

Я тоже немного опоздал на вечеринку, но подумал, что поделюсь следующим, если это поможет какой-нибудь бедной душе.

  • Я получил вышеупомянутую ошибку при новой установке TeamCity 8.1.4 на новом Windows Server 2012 R2. поле
  • Следуйте инструкциям в этом потоке, и ошибка все еще появлялась, несмотря на многочисленные перезагрузки и переустановки.
  • Я заметил, что информация об агенте, такая как ОС и ЦП, не отображается на странице сведений об агенте. Это указывало на то, что проблема заключалась не в предварительных требованиях .NET и MSBUILD, а в том, что служба агента не могла прочитать информацию о машине.
  • Агент работал под учетной записью пользователя (со всеми необходимыми разрешениями согласно документации TeamCity. ). Но я подумал, что посмотрю, что произойдет, если я перейду в «Инструменты администратора»> «Службы» и изменил учетную запись «Вход в систему» ​​на локальную системную.
  • Перезапустил службу агента.
  • Большой успех.
Роберт Харди
источник
Изменение агента для запуска в качестве локальной службы также устранило эту проблему для меня. Но я не понимаю почему. Я добавил пользователя, которого использовал, в группу локальных администраторов, чтобы проверить, не было ли это проблемой с разрешениями, но это не помогло;
user381624
8

MSBuild теперь является частью Visual Studio. Если вам нужно установить инструменты сборки на свой агент, но вы не хотите устанавливать VS, вам нужно будет установить новые инструменты сборки Microsoft, которые доступны по адресу http://www.microsoft.com/en-us/download/ details.aspx? id = 40760 .

Стив Беринг
источник
1
См. Также: ссылку на версию Build Tools 2015 (указанная ссылка - это инструменты 2013 года).
Jeroen
А вот версия 2017 года (Инструменты для Visual Studio 2017 -> Инструменты сборки для Visual Studio 2017)
fuglede
5

В моем случае помогла только отдельная установка MSBuild для VS2013. (вот ссылка - https://www.microsoft.com/en-us/download/confirmation.aspx?id=40760 ) Он создал эту папку C:\Program Files (x86)\MSBuild\12.0Установка инструментов MSBuild для VS2015 создала C:\Program Files (x86)\MSBuild\14.0эту папку, и TC не хотел используй это.

miotis
источник
2

У меня была эта проблема с моим вторичным агентом сборки.

Я скопировал папку MSBuild с основного компьютера агента сборки на компьютер вторичного агента сборки (как я сделал с некоторыми файлами Visual Studio, как описано здесь: MSBuild в TeamCity решения Visual Studio 2012 ), вместо того, чтобы устанавливать MSBuild.

Однако кажется, что службы агента TeamCity проверяют реестр на наличие записей MSBuild при запуске (похоже, он не делает этого с файлами Visual Studio, о которых я упоминал выше). Поскольку я просто скопировал файлы с другого компьютера, записи MSBuild для версии 12.0 не существовало, поэтому TeamCity не обнаружила файлы MSBuild, даже если они находились в папке Program Files (x86) \ MSBuild.

Когда я установил Microsoft Build Tools по ссылке выше http://www.microsoft.com/en-us/download/details.aspx?id=40760 TeamCity обнаружил запись v. 12.0 в реестре, и агент смог создавать те же проекты, что и основной агент.

Не забудьте перезапустить службу агента TeamCity после установки MS Build Tools.

Хилдесхайм
источник
1

В моем случае у меня TeamCity Professional 2018.1 на Windows 2016 Server. Я загрузил Build Tools for Visual Studio 2017 отсюда: https://visualstudio.microsoft.com/downloads/ и выбрал все параметры для инструментов сборки. После установки я добавил MSBuild в глобальную переменную среды PATH. C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin в моем случае.

DerSkythe
источник
0

В моем случае это была новая машина без установленной визуальной студии, и я только что восстановил Teamcity с другой машины. Итак, я установил Visual Studio 2013 и решил проблему агента teamcity.

Shantu
источник
0

Как было сказано выше, автоматически определяемый этап сборки, вероятно, выбран неправильной версией Visual Studio. Измените его, используя раскрывающийся список Visual Studio в разделе « Шаги сборки » на странице параметров конфигурации сборки :

введите описание изображения здесь

Алексей Мялкин
источник
-1

Похоже, я решил эту проблему, зайдя в реестр и удалив все записи для MSBuild, не относящиеся к версии 12, а затем перезапустил агент.

Для этого перейдите в Пуск> Выполнить и введите Regedit.

Затем перейдите к ключу:

HKEY_LOCAL_MACHINE> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ> Microsoft> MSBuild

Удалите все версии кроме 12.0.

Спуститесь на следующий уровень к ToolsVersions и удалите там версии, отличные от 12.0.

HCdev
источник
1
Это плохая идея, последнее, что вам следует делать в CI / CD, - это играть с реестрами
goamn