Using visual studio 2012 on windows 8 x64 aparantly this is caused by msbuild being moved into .net but I havn't seen how to fix it yet.
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5):
error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.
5>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.
http://en.wikipedia.org/wiki/Visual_C++
You are using Visual C++ 2012 which is v110. v120 means Visual C++ 2013.
So either you change the project settings to use toolset v110, or you install Visual Studio 2013 on this machine and use VS2013 to compile it.
To add up to Kevin and Lex's answers:
We had a similar situation at work where both the developers and the build server had Visual Studio 2013. Our solution had a VS 2013 C++ project and compiled fine when built on developer's machine or on the build server within the IDE. The issue was when triggering builds using TFS build definitions. We were still using an old build template (version 11.1) instead of 12.0. Fortunately, a simple attribute addition to the template xaml file solved the issue. In the Sequence portion "Compile the Project", there is a xaml node that starts with
You can add a "ToolPath" attribute and point it to the right path of the MSBuild.exe you wish to invoke, based on Kevin's answer. For instance:
Download and setup Microsoft Build Tools 2013 from http://www.microsoft.com/en-US/download/details.aspx?id=40760
Wasted 4+ hours on this.
I have Visual Studio 2017 Enterprise, one of the projects has below error:
Installed all below:
None of the above worked.
Installed Visual Studio 2013 Ultimate.
That's it. all worked fine.
Looks like, the older Visual studio is must to resolve this.
Hope it helps.
I was getting the same error with building USBView project in VS2015. I removed this error by selecting 'Platform Toolset' settings to to "Visual Studio 2015 (v140)" and than right click on solution (in VS2015) and select 'Retarget Solution' and selected 10.0.10240.0 on that dialog.
It seems like there is also ProjectUpgradeTool from microsoft which is suppose to convert older projects to upgrade to post VS2012 VS but I couldn't locate that tool on my machine.
I still have to fix some new linker error with help of this.
I was facing same issue while building some of project.
I used Visual Studio 2015 IDE, there it was working fine but while giving build from PowerShell script, it was giving toolset related "The builds tools for v140 (Platform Toolset = 'v140') cannot be found." error
So eventually it was issue of pointing to incorrect MSBUILD exe for the respective project.
Earlier I was pointing to $MSBUILD="C:\windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
And build was successful when I updated script to point to $MSBUILD="C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe"
Hence to resolve the issue, please make sure to use correct MSBUILD.