Невиконана вимога міста команди: MSBuildTools12.0_x86_Path існує


117

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

MSBuild в рішенні TeamCity Visual Studio 2012

Я не можу змусити місцевого агента запустити збірку, яку я налаштував для msbuild на проект v2012 або 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?


У вас все ще виникають проблеми з TeamCity?
Даніель Холлінрак

Час, який мені знадобилося, щоб зрозуміти це, вимагало від мене проекту призупинити. Я сподіваюся повернутися до цього навесні.
archangel76

Мені знадобилося певний час, щоб все це працювало. Я думаю, що суть її була встановлення MSBuild та оновлення Web Deploy.
Даніель Холлінрак

Відповіді:


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


8
Слід зазначити, що для встановлення MSBuild12.0 вам знадобиться .NET Framework версії 4.5.1 (знайдено тут: microsoft.com/en-ca/download/details.aspx?id=40779 ).
Брендон

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.
користувач8128167

5
За замовчуванням, коли я використовував автоматичне виявлення файлу sln, і моє рішення було встановлено на Visual Studio 2013. Я змінив на Visual Studio 2015, встановлений на агенті.
ptittof57

33

Трохи запізнення у відповідь, але якщо ваш проект із VS 2012, і ви використовуєте крок збирання файлу рішення, який автоматично визначається, редагуючи цей крок та вибираючи "Microsoft Visual Studio 2012" зі спадного меню "Visual Studio", виправляє цю проблему а також (і, IMHO, правильніше).


2
Не спізнився зовсім! У мене виникла ця проблема сьогодні, і змінивши версію VS на VS 2015, позбувся повідомлення про невиконані вимоги
Sudhanshu Mishra

Це працювало для мене свіжим сервером TeamCity 10 VS2015 (був старий проект 2013 року)
Rippo

2
Так, моя проблема полягала в тому, що Team City "неправильно обрану версію Visual Studio" автоматично вибрав ", коли вибрав автоматичне виявлення кроків збірки з параметра" Створити проект за 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 ). Але я подумав, що побачить, що станеться, якщо я зайшов до Інструментів адміністратора> Послуги та змінив Увійти на локальний обліковий запис системи.
  • Перезапустив службу агентів.
  • Великий успіх.

Зміна агента на запуск локальної служби вирішила цю проблему і для мене. Я не розумію, чому все-таки. Я додав користувача, якого я використовував, до локальної групи адміністраторів, щоб перевірити, чи це проблема з дозволом, але це не допомогло;
користувач381624

8

MSBuild тепер є частиною Visual Studio. Якщо вам потрібно встановити інструменти збирання на ваш агент, але ви не хочете інсталювати VS, вам потрібно буде встановити нові інструменти побудови Microsoft, які доступні за посиланням http://www.microsoft.com/en-us/download/ detalji.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 не хотів використай це.


2

У мене була ця проблема у моєму вторинному агенті побудови.

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

Однак, здається, що агенти агентів TeamCity перевіряють реєстр на записи MSBuild при його запуску (здається, це не робиться з файлами Visual Studio, які я згадую вище). Оскільки я просто скопіював файли з іншого ПК, жодної записи MSBuild для v. 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. Я завантажив інструменти збирання для Visual Studio 2017 звідси: https://visualstudio.microsoft.com/downloads/ та вибрав усі варіанти інструментів побудови. Після установки я додав MSBuild до глобальної змінної середовища PATH. C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin у моєму випадку.


0

У моєму випадку це була нова машина без встановленої візуальної студії, і я щойно відновив Teamcity з іншої машини. Отже, я встановив візуальну студію 2013 та вирішив проблему агентів teamcity.


0

Як було сказано вище, етап автоматичного виявлення збірки, ймовірно, вибрав неправильну версію Visual Studio. Змініть його за допомогою випадаючого меню Visual Studio у розділі " Крок збирання " на сторінці налаштувань конфігурації збірки :

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


-1

Я, здається, вирішив цю проблему, зайшовши в реєстр і видаливши всі записи для MSBuild, які не були для версії 12, а потім перезапустив агент.

Для цього перейдіть до Пуск> Виконати і введіть Regedit

Потім перейдіть до ключа:

HKEY_LOCAL_MACHINE> ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ> Microsoft> MSBuild

Видалити всі версії, крім 12.0.

Перейдіть на наступний рівень до ToolsVersions і видаліть там не 12.0 версії.


1
Це погана ідея, останнє, що ви повинні зробити на CI / CD, це грати з реєстрами
goamn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.