如何使用 MSBuild 构建具有 VS2010 配置的 VS2015 解决方案?
Posted
技术标签:
【中文标题】如何使用 MSBuild 构建具有 VS2010 配置的 VS2015 解决方案?【英文标题】:How to build a VS2015 solution that has a VS2010 configuration using MSBuild? 【发布时间】:2016-08-28 18:01:13 【问题描述】:我想使用 MSBuild 从命令行构建 Visual Studio 2015 C++ 解决方案。复杂之处在于我想构建解决方案的特定配置,它使用 Visual Studio 2010 工具集(因为我要链接到第 3 方库,所以这是必要的)。
我过去曾成功使用过 MSBuild,但不确定在这种情况下使用哪个版本的 MSBuild 和 vcvarsall.bat。目前我正在跑步:
"\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" "\Program Files (x86)\MSBuild\14.0\Bin\MSBuild" mysolution2015.sln /p:Configuration="2010_Config" /p:useenv=true
但这给出了错误:
链接:致命错误 LNK1117:选项“清单:嵌入”中的语法错误
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:您应该使用 VS2015 中的 vcvarsall.bat ("\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat") 所选配置将选择适当的工具集(假设您同时安装了 VS2015 和 VS2010)。
然后您可以简单地使用 msbuild,因为它已被添加到路径中...
【讨论】:
我仍然对这个解决方案有疑问。我的 VS2015 解决方案的 VS2015 配置使用 msbuild 正确构建。但是使用 VS2010 工具的配置无法使用 msbuild 构建(它可以从 IDE 中构建)。使用 msbuild,错误包括:error C2039: 'gets': is not a member of 'std'
,这表明 VS2015 编译器正在运行,而不是 VS2010 编译器。以上是关于如何使用 MSBuild 构建具有 VS2010 配置的 VS2015 解决方案?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 VS 2015 MSBuild 构建 .vdproj
MSBuild Script 和 VS2010 发布应用 Web.config 转换
让 MSBuild 和 CruiseControl .NET 构建和部署 VS2010 数据库项目