MSBuild .targets 文件

MSBuild 包含多个 .targets 文件,其中包含常见方案的项目、属性、目标和任务。 这些文件将自动导入到大多数 Visual Studio 项目文件中,以便简化维护,增强可读性。

与不引用 SDK 的项目相比,SDK 样式项目(类似 <Project Sdk="Microsoft.NET.Sdk">项目)会以不同的方式导入 .targets 文件。 对于 SDK 样式的项目,在项目文件中看不到导入 .targets 的文件,因为这些导入由引用的 SDK 管理。 但是,SDK 样式项目与文件主体前后采用标准导入的非 SDK 样式项目等效,因此仍能准确地说标准 .targets 文件是在这些项目中导入的。

.NET SDK 目标随 .NET SDK 一起安装,例如在 C:\Program Files\dotnet\sdk\{version}\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk Windows 上。 有关 SDK 的完整列表及其 .targets 导入的文件,请参阅 .NET 项目 SDK

未指定 SDK 的项目通常显式导入一个或多个 .targets 文件来定义其生成过程。 例如,由早期版本的 Visual Studio 创建的 C# 项目导入 Microsoft.CSharp.targets,后者导入 Microsoft.Common.targets。 C# 项目本身定义特定于该项目的项和属性,但 C# 项目的标准生成规则在导入 .targets 的文件中定义。

该值 $(MSBuildToolsPath) 指定这些常见 .targets 文件的路径。 对于 .NET 项目,路径通常是 {Visual Studio installation folder}\MSBuild\Current\Bin\{architecture}

注意

若要了解如何创建自己的目标,请参阅目标。 有关如何使用 Import 元素将项目文件插入到其他项目文件的详细信息,请参阅 Import 元素 (MSBuild)如何:在多个项目文件中使用同一目标

常见 .targets 文件

.targets 文件 描述
Microsoft.Common.targets 定义 Visual Basic 和 C# 项目标准生成过程中的步骤。

由 Microsoft.CSharp.targets 和 Microsoft.VisualBasic.targets 文件导入,其中包括以下语句:<Import Project="Microsoft.Common.targets" />
Microsoft.CSharp.targets 定义 Visual C# 项目标准生成过程中的步骤。

由 Visual C# 项目文件 (.csproj) 导入。
Microsoft.VisualBasic.targets 定义 Visual Basic 项目标准生成过程中的步骤。

由 Visual Basic 项目文件.vbproj () 导入。

如果打开和查看文件,则会看到它们与其他文件(通常是Microsoft.{language}.CurrentVersion.targets或跨目标方案Microsoft.{language}.CrossTargeting.targets)相当.targets精简的包装器。

Directory.Build.targets

Directory.Build.targets 是用户定义的对目录下的项目提供自定义选项的文件 。 除非属性 ImportDirectoryBuildTargets 设为 false,否则该文件将从 Microsoft.Common.targets 自动导入 。 有关详细信息,请参阅自定义生成

请参阅