指定要首先生成的 MSBuild 目标

MSBuild 项目文件可以包含一个或多个目标,用于定义项目的生成方式。 MSBuild 会生成它找到的第一个目标,以及任何依赖项,除非:

  • Project 元素包含 InitialTargets 属性。
  • Project 元素包含 DefaultTargets 属性。
  • MSBuild 命令具有用于指定目标的 -target 参数。

使用 InitialTargets 属性

Project 元素的 InitialTargets 属性指定先运行的初始目标。 它会替代你在命令行上使用 MSBuild 或在 Project 元素的 DefaultTargets 属性中指定的任何目标。

指定单个初始目标

Project 元素的 InitialTargets 属性中指定默认目标。 例如:

<Project InitialTargets="Clean">

指定多个初始目标

可以在 Project 元素的 InitialTargets 属性中指定多个初始目标。 按顺序列出目标,并使用分号分隔每个目标。 列表中的目标按顺序运行。

例如,若要运行 Clean 目标,然后运行 Compile 目标,请输入:

<Project InitialTargets="Clean;Compile">

使用 DefaultTargets 属性

Project 元素的 DefaultTargets 属性指定如果未在命令行上显式指定目标,将生成哪个或哪些目标。

如果在 Project 元素的 InitialTargetsDefaultTargets 属性中指定了目标,并且命令行中未指定任何目标,则 MSBuild 将运行 InitialTargets 属性中指定的目标,后跟 DefaultTargets 属性中指定的目标。

指定单个默认目标

Project 元素的 DefaultTargets 属性中指定默认目标。 例如:

<Project DefaultTargets="Compile">`

指定多个默认目标

可以在 Project 元素的 DefaultTargets 属性中指定多个默认目标。 按顺序列出默认目标,并使用分号分隔每个目标。 列表中的目标按顺序运行。

例如,若要运行 Clean 目标,然后运行 Compile 目标,请输入:

<Project DefaultTargets="Clean;Compile">

使用 -target 开关替代默认目标

如果未在项目文件中定义默认目标,或者不想使用定义的默认目标,则可以使用命令行开关 -target 指定其他目标。 运行的是使用 -target 开关指定的一个或多个目标,而不是 Project 元素的 DefaultTargets 属性指定的目标。 InitialTargets 属性中指定的目标会始终优先运行。

使用单个目标替代默认目标

使用带有冒号 (:) 和目标名称的 -target 命令行切换,指定要用作第一个目标的目标。 例如:

msbuild file.proj -target:Clean

使用多个目标替代默认目标

指定要用作第一个目标的目标列表,并使用 -target 命令行开关用分号分隔它们。 例如:

msbuild <file name>.proj -t:Clean;Compile