Reputation: 1544
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?
Upvotes: 117
Views: 46678
Reputation: 2781
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:
Upvotes: 0
Reputation: 525
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.
Upvotes: 1
Reputation: 145
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.
Upvotes: 0
Reputation: 41
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.
Upvotes: 4
Reputation: 2864
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
Upvotes: 148
Reputation: 161
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.
Upvotes: 2
Reputation: 403
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.
Upvotes: 10
Reputation: 16585
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).
Upvotes: 33
Reputation: 131
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.
Upvotes: 8
Reputation: 191
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.
Upvotes: 18
Reputation: 550
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.
Upvotes: -1