Teamstadt nicht erfüllte Anforderung: MSBuildTools12.0_x86_Path ist vorhanden

117

Ich habe eine TeamCity-Installation auf einem x32 Server2008-Windows-Computer. Ich habe die .net 4.5-Webinstallation ausgeführt. Ich habe auch die Dateien von meinem x64-Computer basierend auf diesem Artikel kopiert, sodass ich vs2012 nicht installieren musste (obwohl ich den Pfad zum Entfernen von x86 auf dem 32-Bit-Computer geändert hatte):

MSBuild in TeamCity der Visual Studio 2012-Lösung

Ich kann den lokalen Agenten anscheinend nicht dazu bringen, den Build auszuführen, den ich für msbuild in einem vs2012- oder vs2010-Projekt eingerichtet habe. Ich bekomme immer:

Nicht erfüllte Anforderungen: MSBuildTools12.0_x86_Path ist vorhanden

Ich habe den Server mehrmals neu gestartet und auch den Agenten neu gestartet. Ich habe versucht, ein wenig mit den Pfadvariablen herumzuspielen, kann aber nicht herausfinden, was mir fehlt. Ich habe auch in den Konfigurationsparametern nachgesehen und kann diese sehen:

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

Wie bekomme ich dort 12.0?

Erzengel76
quelle
Haben Sie immer noch Probleme mit TeamCity?
Daniel Hollinrake
Die Zeit, die ich brauchte, um das herauszufinden, erforderte, dass ich das Projekt zurückstellte. Ich hoffe, dass ich im Frühjahr darauf zurückkommen kann.
Erzengel76
Ich habe eine Weile gebraucht, um alles zum Laufen zu bringen. Ich denke, der Kern davon war die Installation von MSBuild und die Aktualisierung von Web Deploy.
Daniel Hollinrake

Antworten:

149

Ich musste MSBuild separat installieren, dann war die Variable nach dem Neustart des Agenten dort.

(Aus dem MSDN-Artikel) MSBuild wird jetzt als Teil von Visual Studio und nicht mehr als Teil von .NET Framework installiert. Die aktuelle MSBuild-Versionsnummer ist 12.0. Wenn Sie MSBuild separat installieren möchten, laden Sie das Installationspaket von MSBuild Download herunter.

Bearbeiten: Der Antwortlink war defekt. Hier ist der Link für Microsoft Build Tools 2015 (zuletzt bis heute): https://www.microsoft.com/en-us/download/details.aspx?id=48159

jmw
quelle
8
Es ist zu beachten, dass Sie zur Installation von MSBuild12.0 die .NET Framework-Version 4.5.1 (hier zu finden: microsoft.com/en-ca/download/details.aspx?id=40779 ) benötigen.
Brandon
37
So starten Sie den Agenten neu: 1. Wechseln Sie zum Build-Server. 2. Führen Sie services.msc über das Startmenü aus. 3. Suchen Sie den TeamCity-Agenten, beenden Sie den Dienst und starten Sie ihn neu. Für erfahrene TeamCity-Tierärzte mag dies offensichtlich erscheinen, für Erstanwender wie mich jedoch nicht. :)
Chaim Eliyah
5
Obwohl ich MS Build Tools 2013 installiert habe, ist die Variable MSBuildTools12.0_x86_Path immer noch nicht festgelegt und der Agent wird nicht ausgeführt. Gibt es eine Möglichkeit, es manuell einzustellen?
Bdaniel7
Musste in dieses Verzeichnis gehen und vcvars64.bat ausführen: C: \ Programme (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin \ amd64 Dann funktionierte msbuild für mich.
user8128167
5
Standardmäßig, wenn ich die automatische Erkennung von SLN-Dateien verwendet habe und meine Lösung auf Visual Studio 2013 eingestellt war. Ich habe für Visual Studio 2015 geändert, das auf dem Agenten installiert ist.
Ptittof57
33

Eine etwas späte Antwort, aber wenn Ihr Projekt aus VS 2012 stammt und Sie den Schritt zum Erstellen einer automatisch erkannten Lösungsdatei verwenden, können Sie dieses Problem beheben, indem Sie diesen Schritt bearbeiten und "Microsoft Visual Studio 2012" aus der Dropdown-Liste "Visual Studio" auswählen auch (und meiner Meinung nach korrekter).

Harper Shelby
quelle
2
Gar nicht zu spät! Ich hatte dieses Problem heute und durch das Ändern der VS-Version auf VS 2015 wurde die Meldung über nicht erfüllte Anforderungen entfernt
Sudhanshu Mishra
Dies funktionierte für mich frischer Server TeamCity 10 VS2015 (war altes 2013 Projekt)
Rippo
2
Ja, mein Problem war, dass die falsche Version von Visual Studio von Team City "automatisch ausgewählt" wurde, als Build-Schritte über die Option "Projekt aus URL erstellen" automatisch erkannt wurden. Ich ging einfach zum Build-Schritt und änderte die Visual Studio-Version, um dies zu beheben. Ich hoffe, die Leute überprüfen zuerst Ihre Antwort, bevor sie versuchen, Dinge zu installieren, die sie in jmws Antwort möglicherweise nicht benötigen.
Starmandeluxe
18

Ich hatte das gleiche Problem und am Ende stellte sich heraus, dass mein definierter Build-Schritt zum Ausführen von MSBuild falsch konfiguriert war.

In meinem MSBuild-Erstellungsschritt wurde die Einstellung "MSBuild ToolsVersion" auf 12.0 (Standard) gesetzt, was zu dem Fehler "Nicht erfüllte Anforderungen: MSBuildTools12.0_x86_Path existiert" auf meinem System führte. Da ich das neue MSBuild 12.0 nicht benötige, um meinen Build auszuführen, habe ich diese Einstellung in meinem Build-Schritt auf 4.0 geändert. Diese MSBuild-Version ist korrekt auf meinem System installiert. Dies löste das Problem für mich.

Andreas Schuermann
quelle
10

Ich bin auch ein bisschen zu spät zur Party, aber ich dachte, ich würde Folgendes teilen, falls es einer armen Seele da draußen hilft.

  • Ich habe den oben genannten Fehler bei einer Neuinstallation von TeamCity 8.1.4 auf einer neuen Windows Server 2012 R2- Box erhalten
  • Befolgen Sie die Anweisungen in diesem Thread und der Fehler trat trotz zahlreicher Neustarts und Neuinstallationen immer noch auf.
  • Ich habe festgestellt, dass die Agenteninformationen wie Betriebssystem und CPU nicht auf der Seite mit den Agentendetails angezeigt werden. Dies deutete darauf hin, dass das Problem nicht mit den .NET- und MSBUILD-Voraussetzungen zusammenhängt, sondern damit zusammenhängt, dass der Agentendienst keine Informationen über den Computer lesen kann.
  • Der Agent wurde unter einem Benutzerkonto ausgeführt (mit allen erforderlichen Berechtigungen gemäß der TeamCity-Dokumentation ). Aber ich dachte, ich würde sehen, was passieren würde, wenn ich zu Admin Tools> Services gehe und das Konto Anmelden in Lokales Systemkonto ändere.
  • Der Agentendienst wurde neu gestartet.
  • Großer Erfolg.
Robert Hardy
quelle
Das Ändern des Agenten zur Ausführung als lokaler Dienst hat dieses Problem auch für mich behoben. Ich verstehe aber nicht warum. Ich habe den Benutzer, den ich verwendet habe, zur lokalen Administratorgruppe hinzugefügt, um festzustellen, ob es sich um ein Berechtigungsproblem handelt, aber das hat nicht geholfen.
user381624
8

MSBuild ist jetzt Teil von Visual Studio. Wenn Sie die Build-Tools auf Ihrem Agenten installieren müssen, VS jedoch nicht installieren möchten, müssen Sie die neuen Microsoft Build Tools installieren, die unter http://www.microsoft.com/en-us/download/ verfügbar sind. details.aspx? id = 40760 .

Steve Bering
quelle
1
Siehe auch: Link für die Build Tools 2015- Version (der erwähnte Link ist 2013 Tools).
Jeroen
Und hier ist die Version 2017 (Tools für Visual Studio 2017 -> Build Tools für Visual Studio 2017)
Fuglede
5

In meinem Fall hat nur eine separate Installation von MSBuild für VS2013 geholfen. (Hier ist der Link - https://www.microsoft.com/en-us/download/confirmation.aspx?id=40760 ) Dieser Ordner wurde erstellt. Die C:\Program Files (x86)\MSBuild\12.0Installation der MSBuild-Tools für VS2015 hat C:\Program Files (x86)\MSBuild\14.0diesen Ordner erstellt, und TC wollte dies nicht benutze es.

Miotis
quelle
2

Ich hatte dieses Problem auf meinem sekundären Build-Agenten.

Ich hatte den MSBuild-Ordner vom primären Build-Agent-PC auf den sekundären Build-Agent-PC kopiert (wie bei einigen Visual Studio-Dateien, wie hier beschrieben: MSBuild in TeamCity der Visual Studio 2012-Lösung ), anstatt MSBuild zu installieren.

Es scheint jedoch, dass die TeamCity-Agentendienste die Registrierung beim Start auf MSBuild-Einträge überprüfen (dies scheint bei den oben genannten Visual Studio-Dateien nicht der Fall zu sein). Da ich die Dateien einfach vom anderen PC kopiert hatte, war kein MSBuild-Eintrag für Version 12.0 vorhanden, sodass TeamCity die MSBuild-Dateien nicht erkannte, obwohl sie im Ordner Programme (x86) \ MSBuild vorhanden waren.

Als ich die Microsoft Build Tools über den obigen Link http://www.microsoft.com/en-us/download/details.aspx?id=40760 installierte, fand TeamCity den Eintrag v. 12.0 in der Registrierung und der Agent konnte Erstellen Sie dieselben Projekte wie der primäre Agent.

Denken Sie daran, den TeamCity-Agentendienst nach der Installation von MS Build Tools neu zu starten.

Hildesheim
quelle
1

In meinem Fall habe ich TeamCity Professional 2018.1 unter Windows 2016 Server. Ich habe Build Tools für Visual Studio 2017 von hier heruntergeladen : https://visualstudio.microsoft.com/downloads/ und alle Optionen für Build Tools ausgewählt. Nach der Installation habe ich MSBuild zur globalen Umgebungsvariablen PATH hinzugefügt. C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin in meinem Fall.

DerSkythe
quelle
0

In meinem Fall war es eine neue Maschine ohne Visual Studio und ich habe gerade Teamcity von einer anderen Maschine wiederhergestellt. Also habe ich Visual Studio 2013 installiert und das Problem mit dem Teamcity-Agenten gelöst.

Shantu
quelle
0

Wie oben erwähnt, wird der automatisch erkannte Erstellungsschritt wahrscheinlich in der falschen Visual Studio-Version aufgenommen. Ändern Sie es mithilfe der Dropdown-Liste " Visual Studio " im Abschnitt " Build-Schritte " auf der Seite " Build-Konfigurationseinstellungen ":

Geben Sie hier die Bildbeschreibung ein

Aleksei Mialkin
quelle
-1

Ich schien dieses Problem zu lösen, indem ich in die Registrierung ging und alle Einträge für MSBuild löschte, die nicht für Version 12 waren, und dann den Agenten neu startete.

Gehen Sie dazu zu Start> Ausführen und geben Sie Regedit ein

Navigieren Sie dann zur Taste:

HKEY_LOCAL_MACHINE> SOFTWARE> Microsoft> MSBuild

Löschen Sie alle Versionen außer 12.0.

Gehen Sie die nächste Ebene zu ToolsVersions und löschen Sie dort die Nicht-12.0-Versionen.

HCdev
quelle
1
Dies ist eine schlechte Idee, das Letzte, was Sie in CI / CD tun sollten, ist mit Registern zu spielen
goamn