Niespełnione wymaganie miasta zespołu: istnieje MSBuildTools12.0_x86_Path

117

Mam instalację TeamCity na komputerze z systemem Windows x32 Server2008. Uruchomiłem instalację internetową .net 4.5. Skopiowałem również pliki z mojej maszyny x64 na podstawie tego artykułu, więc nie musiałem instalować vs2012 (chociaż zmieniłem ścieżkę, aby usunąć x86 na maszynie 32-bitowej):

MSBuild w rozwiązaniu TeamCity programu Visual Studio 2012

Nie mogę zmusić lokalnego agenta do uruchomienia kompilacji, którą skonfigurowałem dla msbuild w projekcie vs2012 lub vs2010. Ciągle otrzymuję:

Niespełnione wymagania: istnieje MSBuildTools12.0_x86_Path

Wielokrotnie restartowałem serwer i restartowałem agenta. Próbowałem trochę pomieszać ze zmiennymi ścieżki, ale nie mogę dowiedzieć się, czego mi brakuje. Sprawdziłem również w parametrach konfiguracji i widzę te:

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

Jak uzyskać tam 12,0?

archanioł76
źródło
Nadal masz problemy z TeamCity?
Daniel Hollinrake,
Ilość czasu, jaką zajęło mi wymyślenie tego, wymagała ode mnie wstrzymania projektu. Mam nadzieję, że wrócę do tego wiosną.
archangel76
Zajęło mi trochę czasu, zanim to wszystko działało. Myślę, że sednem tego była instalacja MSBuild i aktualizacja Web Deploy.
Daniel Hollinrake

Odpowiedzi:

149

Musiałem osobno zainstalować MSBuild, po ponownym uruchomieniu agenta zmienna tam była.

(Z artykułu MSDN) Program MSBuild jest teraz instalowany jako część programu Visual Studio, a nie jako część .NET Framework. Bieżący numer wersji MSBuild to 12.0. Jeśli chcesz oddzielnie zainstalować program MSBuild, pobierz pakiet instalacyjny z witryny MSBuild Download.

edycja: link do odpowiedzi był uszkodzony. Oto link do Microsoft Build Tools 2015 (ostatnio do dzisiaj): https://www.microsoft.com/en-us/download/details.aspx?id=48159

jmw
źródło
8
Należy zauważyć, że do zainstalowania programu MSBuild12.0 będzie potrzebny .NET Framework w wersji 4.5.1 (dostępny tutaj: microsoft.com/en-ca/download/details.aspx?id=40779 ).
Brandon,
37
Aby zrestartować agenta: 1. Przejdź do serwera budowania. 2. Uruchom services.msc z menu Start. 3. Znajdź agenta TeamCity, zatrzymaj usługę i uruchom ją ponownie. Może się to wydawać oczywiste dla doświadczonych weterynarzy TeamCity, ale nie dla początkujących użytkowników, takich jak ja. :)
Chaim Eliyah
5
Chociaż mam zainstalowane narzędzia MS Build Tools 2013, zmienna MSBuildTools12.0_x86_Path nadal nie jest ustawiona, a agent nie działa. Czy jest sposób, aby ustawić to ręcznie?
bdaniel7
Musiałem przejść do tego katalogu i uruchomić vcvars64.bat: C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin \ amd64 Wtedy MSBuild działał dla mnie.
user8128167,
5
Domyślnie, gdy użyłem automatycznego wykrywania pliku sln, a moje rozwiązanie było ustawione na Visual Studio 2013. Zmieniłem na Visual Studio 2015 zainstalowany na agencie.
ptittof57
33

Trochę późna odpowiedź, ale jeśli Twój projekt pochodzi z VS 2012 i używasz automatycznie wykrywanego kroku kompilacji pliku rozwiązania, edycja tego kroku i wybranie „Microsoft Visual Studio 2012” z listy rozwijanej „Visual Studio” rozwiązuje ten problem również (i IMHO, bardziej poprawnie).

Harper Shelby
źródło
2
Wcale nie późno! Miałem ten problem dzisiaj i zmiana wersji VS na VS 2015 pozbyłem się komunikatu o niespełnionych wymaganiach
Sudhanshu Mishra
To zadziałało dla mnie świeży serwer TeamCity 10 VS2015 (był to stary projekt z 2013 roku)
Rippo
2
Tak, mój problem polegał na tym, że Team City „automatycznie wybrała” niewłaściwą wersję programu Visual Studio podczas wybierania opcji automatycznego wykrywania kroków kompilacji za pomocą opcji „Utwórz projekt z adresu URL”, więc po prostu przeszedłem do etapu kompilacji i zmieniłem Wersja programu Visual Studio, aby to naprawić. Mam nadzieję, że ludzie najpierw sprawdzą twoją odpowiedź, zanim spróbują zainstalować rzeczy, których mogą nie potrzebować w odpowiedzi jmw.
starmandeluxe
18

Miałem ten sam problem i na koniec okazało się, że mój zdefiniowany krok kompilacji do uruchomienia MSBuild został źle skonfigurowany.

W moim kroku kompilacji MSBuild ustawienie „MSBuild ToolsVersion” zostało ustawione na 12.0 (domyślnie), co prowadzi do błędu „Niespełnione wymagania: MSBuildTools12.0_x86_Path istnieje” w moim systemie. Ponieważ nie potrzebuję nowego programu MSBuild 12.0 do uruchomienia mojej kompilacji, zmieniłem to ustawienie na 4,0 na etapie kompilacji. Ta wersja programu MSBuild jest poprawnie zainstalowana w moim systemie. To rozwiązało problem.

Andreas Schuermann
źródło
10

Jestem też trochę spóźniony na imprezę, ale pomyślałem, że podzielę się tym, na wypadek, gdyby pomogło to każdej biednej duszy.

  • Powyższy błąd wystąpił podczas świeżej instalacji TeamCity 8.1.4 na nowym pudełku z systemem Windows Server 2012 R2
  • Postępowałem zgodnie z instrukcjami w tym wątku i błąd nadal pojawiał się pomimo wielu ponownych uruchomień i ponownych instalacji.
  • Zauważyłem, że informacje o agencie, takie jak system operacyjny i procesor, nie pojawiają się na stronie szczegółów agenta. To wskazywało, że problem nie dotyczył wymagań wstępnych .NET i MSBUILD, ale był związany z tym, że usługa agenta nie była w stanie odczytać informacji o komputerze.
  • Agent działał na koncie użytkownika (ze wszystkimi niezbędnymi uprawnieniami zgodnie z dokumentacją TeamCity ). Ale pomyślałem, że zobaczę, co by się stało, gdybym wszedł do Admin Tools> Services i zmienił konto systemowe Log On to Local.
  • Ponownie uruchomiono usługę agenta.
  • Wielkim sukcesem.
Robert Hardy
źródło
Zmiana agenta na usługę lokalną rozwiązała również ten problem. Nie rozumiem jednak dlaczego. Dodałem użytkownika, którego używałem, do lokalnej grupy administratorów, aby sprawdzić, czy jest to problem z uprawnieniami, ale to nie pomogło;
user381624
8

MSBuild jest teraz częścią programu Visual Studio. Jeśli chcesz zainstalować narzędzia do kompilacji na swoim agencie, ale nie chcesz instalować VS, musisz zainstalować nowe narzędzia Microsoft Build Tools, które są dostępne pod adresem http://www.microsoft.com/en-us/download/ details.aspx? id = 40760 .

Steve Bering
źródło
1
Zobacz też: link do wersji Build Tools 2015 (wspomniany link to narzędzia 2013).
Jeroen
A oto wersja 2017 (Tools for Visual Studio 2017 -> Build Tools for Visual Studio 2017)
fuglede
5

W moim przypadku pomogła tylko osobna instalacja MSBuild dla VS2013. (tutaj jest link - https://www.microsoft.com/en-us/download/confirmation.aspx?id=40760 ) Utworzył ten folder C:\Program Files (x86)\MSBuild\12.0Instalacja narzędzi MSBuild dla VS2015 utworzyła C:\Program Files (x86)\MSBuild\14.0ten folder, a TC nie chciał Użyj tego.

miotis
źródło
2

Miałem ten problem na moim drugim agencie kompilacji.

Skopiowałem folder MSBuild z głównego komputera z agentem kompilacji na drugi komputer z agentem kompilacji (tak jak w przypadku niektórych plików programu Visual Studio, jak opisano tutaj: MSBuild w rozwiązaniu TeamCity of Visual Studio 2012 ), zamiast instalować MSBuild.

Wydaje się jednak, że usługi agenta TeamCity sprawdzają rejestr w poszukiwaniu wpisów MSBuild podczas uruchamiania (wydaje się, że nie robi tego z plikami Visual Studio, o których wspomniałem powyżej). Ponieważ po prostu skopiowałem pliki z innego komputera, nie istniał żaden wpis MSBuild dla wersji 12.0, więc TeamCity nie wykrył plików MSBuild, mimo że były one obecne w folderze Program Files (x86) \ MSBuild.

Kiedy zainstalowałem narzędzia Microsoft Build Tools z powyższego łącza http://www.microsoft.com/en-us/download/details.aspx?id=40760 TeamCity znalazłem w rejestrze wpis wer. 12.0, a agent był w stanie budować te same projekty, co główny agent.

Pamiętaj, aby ponownie uruchomić usługę agenta TeamCity po zainstalowaniu MS Build Tools.

Hildesheim
źródło
1

W moim przypadku mam TeamCity Professional 2018.1 na Windows 2016 Server. Pobrałem narzędzia do kompilacji dla programu Visual Studio 2017 stąd: https://visualstudio.microsoft.com/downloads/ i wybrałem wszystkie opcje narzędzi do kompilacji. Po instalacji dodałem MSBuild do globalnej zmiennej środowiskowej PATH. C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin w moim przypadku.

DerSkythe
źródło
0

W moim przypadku była to nowa maszyna bez zainstalowanego Visual Studio i właśnie przywróciłem Teamcity z innej maszyny. Więc zainstalowałem Visual Studio 2013 i rozwiązałem problem agenta Teamcity.

Shantu
źródło
0

Jak wspomniano powyżej, automatycznie wykrywany krok kompilacji jest prawdopodobnie wybierany nieprawidłową wersję programu Visual Studio. Zmień to przy użyciu menu rozwijanego programu Visual Studio w sekcji Kroki kompilacji na stronie ustawień konfiguracji kompilacji :

wprowadź opis obrazu tutaj

Aleksei Mialkin
źródło
-1

Wydawało się, że rozwiązałem ten problem, wchodząc do rejestru i usuwając wszystkie wpisy dla programu MSBuild, które nie były przeznaczone dla wersji 12, a następnie ponownie uruchomiłem agenta.

Aby to zrobić, przejdź do Start> Uruchom i wpisz Regedit

Następnie przejdź do klucza:

HKEY_LOCAL_MACHINE> OPROGRAMOWANIE> Microsoft> MSBuild

Usuń wszystkie wersje z wyjątkiem 12.0.

Przejdź do następnego poziomu do ToolsVersions i usuń tam wersje inne niż 12.0.

HCdev
źródło
1
To zły pomysł, ostatnią rzeczą, którą powinieneś zrobić w CI / CD, jest gra z rejestrami
goamn