如何:指定首先生成的目标

项目文件可以包含一个或多个定义如何生成项目的 Target 元素。 除非项目文件包含一个 DefaultTargets 特性和一个 InitialTargets 特性,或者使用 /target 开关在命令行中指定目标,否则 Microsoft Build Engine (MSBuild) 引擎将生成它找到的第一个项目以及任何依赖项。

使用 InitialTargets 特性

Project 元素的 InitialTargets 特性用于指定将首先运行的目标(即使在命令行或在 DefaultTargets 特性中指定了目标)。

指定一个初始目标

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

    <Project InitialTargets="Clean">

通过按顺序列出目标并用分号分隔每个目标,可以在 InitialTargets 特性中指定多个初始目标。 列表中的目标将按顺序运行。

指定多个初始目标

  • Project 元素的 InitialTargets 特性中列出用分号分隔的初始目标。 例如,若要运行 Clean 目标,然后运行 Compile 目标,请键入:

    <Project InitialTargets="Clean;Compile">

使用 DefaultTargets 特性

Project 元素的 DefaultTargets 特性用于指定如果不在命令行显式指定目标则生成哪个或哪些目标。 如果在 InitialTargets 特性和 DefaultTargets 特性中都指定了目标,且没有在命令行指定目标,则 MSBuild 将先运行在 InitialTargets 特性中指定的目标,然后运行在 DefaultTargets 特性中指定的目标。

指定一个默认目标

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

    <Project DefaultTargets="Compile">

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

指定多个默认目标

  • Project 元素的 DefaultTargets 特性中列出用分号分隔的默认目标。 例如,若要运行 Clean 目标,然后运行 Compile 目标,请键入:

    <Project DefaultTargets="Clean;Compile">

使用 /target 开关

如果在项目文件中未定义一个默认目标,或者如果不希望使用该默认目标,可以使用命令行开关 /target 指定一个不同的目标。 将运行用 /target 开关指定的一个或多个目标,而不是由 DefaultTargets 特性指定的目标。 在 InitialTargets 特性中指定的目标将始终首先运行。

首先使用默认目标以外的一个目标

  • 使用 /target 命令行开关,将此目标指定为第一个目标。 例如:

    msbuild file.proj /target:Clean

首先使用默认目标以外的多个目标

  • 使用 /target 命令行开关列出由分号或逗号分隔的目标。 例如:

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

请参见

任务

如何:清理生成

概念

MSBuild 目标

其他资源

MSBuild