使用Microsoft Visual Studio 2015中的MSBuild 12.0进行编译

时间:2017-04-07 17:58:51

标签: c++ visual-studio-2013 visual-studio-2015 msbuild c++-cli

我有一个使用MSVC 12.0 Visual Studio 2013(C ++ / CLI和C#)编译的解决方案,但只有Visual Studio 2015(社区)。我想按照预期使用MSVC 12.0构建项目,因为我只需要为我的目的重建解决方案的一部分(5个),并希望它与其他DLL兼容。当尝试从MSVC 14.0(Visual Studio 2015)构建它时,它说:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build tools for v120 (Platform Toolset = 'v120') cannot be found.

当然我从这里安装了2013年的MS Build工具(MSVC 12.0,v120):https://www.microsoft.com/en-us/download/details.aspx?id=40760以及Microsoft Visual C ++ Redistributable 2013包。

12.0构建工具安装的正确目录是C:\Program Files (x86)\MSBuild\12.0\Bin\amd64

它看起来像解决方案(或一般的Visual Studio)中的配置错误,因为它在错误的目录中查找构建工具。有谁知道我需要在Visual Studio中更改/添加哪些设置才能使用MSBuild 12.0而不是14.0进行编译?我不想安装Visual Studio 2013,因为我不会将其用于其他任何事情(只是想根据需要选择在VS 2015中使用VS 2013 MSBUILD)。

3 个答案:

答案 0 :(得分:0)

如果您转到.vcxproj的顶部,请将其更改为

<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

然后您的.sln仍然可以在Visual Studio 2015中打开

VisualStudioVersion = 14.0.25420.1

原因是因为编译器版本是逐个项目指定的,并且将覆盖解决方案版本。

答案 1 :(得分:0)

  

我不想安装Visual Studio 2013,因为我不会将其用于其他任何事情(只是想根据需要选择在VS 2015中使用VS 2013 MSBUILD)。

您可以从VS2015安装程序安装VS2013工具集版本,而无需安装Visual Studio 2013.从2015安装程序中,选择Windows 8.1和Windows Phone 8.0 / 8.1工具 Visual C ++的常用工具2015

enter image description here

安装完成后,您将在下面找到平台工具集:

enter image description here

然后,您可以使用平台工具集Visual Studio 2013(v120)构建项目。

您可以参考SO上的similar question了解更多信息。

答案 2 :(得分:0)

好吧,虽然以迂回的方式我已经开始工作了。感谢已经回答和评论的其他人。免费注册Microsoft Visual Studio Dev Essentials订阅。 https://azure.microsoft.com/en-us/pricing/member-offers/vs-dev-essentials/然后,您可以浏览菜单并下载Visual Studio Community 2013,转到此链接并找到它https://my.visualstudio.com/downloads?wt.mc_id=o~msft~vscom~older-downloads&campaign=o~msft~vscom~older-downloads。完成后,您可以从Visual Studio 2015构建MSVC 12.0。当然,不完美,但它的工作原理。我还没有尝试卸载Visual Studio 2013以查看它是否仍然有效(Windows Phone SDK 8.1与2013年一样安装,以使其在2015版企业版中运行)但是如果你能以某种方式保留它并删除2013年版我相信它可以在没有2013安装的情况下运行......