117
votes

I have a TeamCity install on x32 Server2008 windows machine. I've run the .net 4.5 web install. I've also copied over the files from my x64 machine based on this article so that I didn't need to install vs2012 (though, I did have the change the path to remove x86 on the 32bit machine):

MSBuild in TeamCity of Visual Studio 2012 solution

I can't seem to get the local agent to run the build that I've setup for msbuild on a vs2012 or vs2010 project. I keep getting:

Unmet requirements: MSBuildTools12.0_x86_Path exists

I've restarted the server multiple times, and restarted the agent as well. I've tried messing with the path variables a little, but can't figure out what I'm missing. I've looked as well in the Configuration Parameters, and can see these:

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

How do I get 12.0 in there?

11
Are you still having problems with TeamCity?Daniel Hollinrake
The amount of time that took for me to figure this out required me to put the project on hold. I hope to get back to it in the spring.archangel76
It took me a while to get it all working. I think the gist of it was installing MSBuild and updating Web Deploy though.Daniel Hollinrake

11 Answers

149
votes

I needed to install MSBuild separately, then after restarting the agent the variable was there.

(From MSDN article) MSBuild is now installed as part of Visual Studio rather than as part of the .NET Framework. The current MSBuild version number is 12.0. If you want to install MSBuild separately, download the installation package from MSBuild Download.

edit: the answer link was broken. Here is the link for Microsoft Build Tools 2015 (most recently until today): https://www.microsoft.com/en-us/download/details.aspx?id=48159

33
votes

A bit of a late answer, but if your project is from VS 2012, and you're using the autodetected solution file build step, editing that step and choosing "Microsoft Visual Studio 2012" from the "Visual Studio" drop down fixes this issue as well (and, IMHO, more correctly).

18
votes

I had the same problem and at the end it turned out that my defined build step to run MSBuild was configured wrong.

In my MSBuild build step the setting "MSBuild ToolsVersion" was set to 12.0 (default), which lead to the error "Unmet requirements: MSBuildTools12.0_x86_Path exists" on my system. Because I don't need the new MSBuild 12.0 to run my build, I changed this setting to 4.0 in my build step. This MSBuild version is correctly installed on my system. This solved the issue for me.

10
votes

I'm also a bit late to the party but I thought I'd share the following in case it helps any poor soul out there.

  • I got the above mentioned error on a fresh install of TeamCity 8.1.4 on a new Windows Server 2012 R2 box
  • Followed the instructions in this thread and the error still appeared despite numerous restarts and reinstalls.
  • I noticed that the agent info such as OS and CPU was not appearing on the agent details page. This indicated that the problem was not with the .NET and MSBUILD prerequisites but were instead related to the agent service not being able to read info about the machine.
  • The agent was running under a user's account (with all the necessary permissions as per the TeamCity documentation). But I thought I'd see what would happen if I went in to Admin Tools > Services and changed the Log On to Local system account.
  • Restarted the agent service.
  • Great success.
8
votes

MSBuild is now part of Visual Studio. If you need to install the build tools on your agent but don't want to install VS, you will need to install the new Microsoft Build Tools which is available at http://www.microsoft.com/en-us/download/details.aspx?id=40760.

5
votes

In my case - only separate installation of MSBuild for VS2013 helped. (here is link - https://www.microsoft.com/en-us/download/confirmation.aspx?id=40760 ) It created this folder C:\Program Files (x86)\MSBuild\12.0 Installation of MSBuild tools for VS2015 created C:\Program Files (x86)\MSBuild\14.0 this folder, and TC didn't want to use it.

2
votes

I had this problem on my secondary build agent.

I had copied the MSBuild folder from the primary build agent pc to the secondary build agent pc (like I did with some Visual Studio files as described here: MSBuild in TeamCity of Visual Studio 2012 solution), rather than installing MSBuild.

It seems, however, that the TeamCity agent services checks the registry for MSBuild entries when it starts up (it does not seem to do this with the Visual Studio files i mention above). Since I had simply copied the files from the other pc, no MSBuild entry for v. 12.0 existed, so TeamCity did not discover the MSBuild files even though they were present in the Program Files (x86)\MSBuild folder.

When I installed the Microsoft Build Tools from the link above http://www.microsoft.com/en-us/download/details.aspx?id=40760 TeamCity found the v. 12.0 entry in the registry and the agent was able to build the same projects as the primary agent.

Remember to restart the TeamCity agent service after installing MS Build Tools.

1
votes

In my case I have TeamCity Professional 2018.1 on Windows 2016 Server. I downloaded Build Tools for Visual Studio 2017 from here: https://visualstudio.microsoft.com/downloads/ and selected all options for build tools. After install I added MSBuild to the global PATH environment variable. C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin in my case.

0
votes

In my case, it was a new machine without visual studio installed and i just restored Teamcity from another machine. So i have installed visual studio 2013 and solved teamcity agent problem.

0
votes

As was stated above, autodetected build step is probably picked up wrong Visual Studio version. Change it using Visual Studio dropdown under Build Steps section on Build Configuration settings page:

enter image description here

-1
votes

I seemed to solve this issue by going into the registry and deleting all entries for MSBuild that weren't for version 12, then restarted the agent.

To do that, go to Start > Run and type in Regedit

Then navigate to the key:

HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > MSBuild

Delete all versions except for 12.0.

Go down the next level to ToolsVersions and delete the non-12.0 versions there.