我有一个需要使用TFS构建的解决方案。 C#项目和一些C ++项目升级到.Net Framework 4.6和Platform Toolset v140。但是一些第三方C ++项目无法升级(它们在V110中)。 MSBuild无法为项目使用适当的工具集版本。它返回此错误:
C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V110 \ Microsoft.Cpp.Platform.targets(44):v140的构建工具(Platform Toolset = 'v140')无法找到。要使用v140构建工具进行构建,请单击“项目”菜单或右键单击解决方案,然后选择“更新VC ++项目...”。使用v140构建工具安装v140进行构建。
有什么方法可以让它发挥作用吗? MSBuild可以构建一个具有不同平台工具集项目的解决方案吗?
谢谢你, Arash的
答案 0 :(得分:0)
我的同事Phil解决了这个问题。基本上,您所要做的就是将MSBuild ToolPath属性更改为指向正确的MSBuild版本。由于每个版本的MSBuild都支持早期版本,因此您应该指向最高版本的MSBuild。
在Visual Studio中打开构建过程模板,然后导航到Microsoft.TeamFoundation.Build.Workflow.Activities.MSBuild。要到达那里,您应该转到以下路径:
尝试编译,测试和关联...... - >序列 - >编译,测试和关联... - >尝试编译和测试 - >编译和测试 - >对于...中的每个配置 - >编译和测试...... - >如果BuildSettings.HasProjectsToBuild - >对于BuildSettings中的每个项目... - >编译项目和副本 - >尝试编译项目 - >编译项目
现在右键单击“为项目运行MSBuils”并选择属性。这里有一个属性“ToolPath”,您可以指定MSBuild地址(在我的例子中是“C:\ Program Files(x86)\ MSBuild \ 14.0 \ Bin”)。
这应解决问题。
干杯,
Arash的
答案 1 :(得分:-1)
您无需在项目的MSBuild参数中指定平台工具集。
我尝试过我当地的环境。包括三个项目的解决方案 C#(Platform Toolset v140),C ++(Platform Toolset v140),C ++(Platform Toolset v120)。没有在MSBuild Arguments中指定Platform Toolset。建立成功。