Microsoft Build Tools 2013是用于生成托管应用程序的必要工具。此文件中还包括 Visual Basic 和 C# 编译器。大多数工具集可用于将应用程序编译为多个版本的 .NET Framework 以及多个系统平台。
Microsoft Build Tools 2013工作特性与原理
当你在 Visual Studio 中创建项目或更新现有项目时,名为 ToolsVersion 的特性将自动包括在项目文件中,并且其值对应于包括在 Visual Studio 版本中的 MSBuild 版本。
当 ToolsVersion 值在项目文件中定义时,MSBuild 将使用该值来确定在该项目中可用的工具集属性的值。 其中一个工具集属性为 $(MSBuildToolsPath),该属性指定 .NET Framework 工具的路径。 仅该工具集属性(或 $(MSBuildBinPath))是必需的。
从 Visual Studio 2013 开始,MSBuild 工具集版本号与 Visual Studio 版本号相同。 无论项目文件中指定哪个工具集版本,MSBuild 都会在 Visual Studio 中和命令行上默认使用该工具集。 使用 /ToolsVersion 标志可重写此行为。
当在命令行上生成解决方案并为 msbuild.exe 指定 ToolsVersion 时,所有项目及其项目到项目的依赖项均基于该 ToolsVersion 生成,即便解决方案中的每个项目都指定了自己的 ToolsVersion 也是如此。 若要针对每个项目定义 ToolsVersion 值,
ToolsVersion 特性也用于项目移植。 例如,如果你在 Visual Studio 2010 中打开 Visual Studio 2008 项目,则该项目文件将更新以包括 ToolsVersion=“4.0”。 如果你此时尝试在 Visual Studio 2008 中打开该项目,由于它不会识别已升级的 ToolsVersion,因此它会按照该特性设置为 3.5 的情况生成该项目。
Visual Studio 2010 和 Visual Studio 2012 使用的 ToolsVersion 为 4.0。 Visual Studio 2013 使用的 ToolsVersion 为 12.0。 在许多情况下,无需修改即可在 Visual Studio 的所有三个版本中打开该项目。 Visual Studio 始终会使用正确的工具集,但是会在使用的版本与项目文件中的版本不匹配时通知你。 在几乎所有情况下,此警告是良性的,因为工具集在大多数情况下都兼容。
子工具集(将在本主题后面部分介绍)允许 MSBuild 根据运行生成所在的上下文自动切换要使用的工具集。 例如,当 MSBuild 在 Visual Studio 2012 中运行时,它将使用比在 Visual Studio 2010 中运行时更新的工具集,而且你无需显式更改项目文件。
∨ 展开