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 自动导入 。 有关详细信息,请参阅自定义生成。