.vcxproj和.vcxproj.filters中Tools Tools之间的区别

时间:2018-03-22 07:30:22

标签: c++ visual-studio-2017 vcxproj

我在VS 2017中有一个C ++项目。 .vcxproj文件中的工具版本是15.0而.vcxproj.filters是4.0。

Project.vcxproj: -

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

Project.vcxproj.filters: -

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

我无法弄清楚这些工具版本之间存在差异的原因。 任何人都可以解释一下。

1 个答案:

答案 0 :(得分:0)

ToolsetVersion属性指定MSBuild Toolset版本。 Visual Studio 2010和Visual Studio 2012使用4.0的ToolsVersion。 Visual Studio 2013使用12.0的ToolsVersion。 Visual Studio 2015使用14.0的ToolsVersion。 Visual Studio 2017使用15.0的ToolsVersion。

默认情况下,位于15.0的MSBuild工具集位于C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0

  

ToolsVersion属性   在ToolsVersion中指定工具集   项目文件中Project元素的属性。以上   示例指定应使用。来构建项目   MSBuild 15.0工具集。

     

ToolsVersion属性如何工作   在Visual Studio中创建项目或升级现有项目时   项目,名为ToolsVersion的属性自动包含在   项目文件及其值对应于MSBuild的版本   它包含在Visual Studio版本中。

     

在项目文件中定义ToolsVersion值时,MSBuild会使用   该值用于确定Toolset属性的值   可用于该项目。一个工具集属性为$(MSBuildToolsPath),   它指定.NET Framework工具的路径。只有这样   工具集属性(或$(MSBuildBinPath))是必需的。