Target 元素 (MSBuild)

更新:2007 年 11 月

包含 MSBuild 的一组任务,这组任务应顺序执行。

<Target Name="Target Name"
        DependsOnTargets="DependentTarget"
        Inputs="Inputs"
        Outputs="Outputs"
        Condition="'String A' == 'String B'">
    <Task>... </Task>
    <OnError... />
</Target>

属性和元素

以下几节描述了属性、子元素和父元素。

属性

属性

说明

Name

必选的属性。

目标的名称。

DependsOnTargets

可选的属性。

在执行此目标或者进行顶级依赖项分析之前必须执行的目标。多个目标之间用分号分隔。

Inputs

可选的属性。

此目标的项输入。此属性中的项用作顶级依赖项分析中的输入。

Outputs

可选的属性。

此目标的预期输出。可以通过对输入项应用转换来生成输出项。有关转换的更多信息,请参见 MSBuild 转换

Condition

可选的属性。

要计算的条件。如果条件的计算结果为 false,目标将不会执行该目标的体或者在 DependsOnTargets 属性中设置的任何目标的体。有关条件的更多信息,请参见 MSBuild 条件

子元素

元素

说明

Task

创建并执行 MSBuild 任务的一个实例。一个目标中可以有零个或零个以上的任务。

OnError

如果失败的任务的 ContinueOnError 属性为 false,那么此元素会导致一个或多个目标执行。一个目标中可以有零个或零个以上的 OnError 元素。如果 OnError 元素存在,则它们必须是 Target 元素中的最后元素。

父元素

元素

说明

Project

MSBuild 项目文件必需的根元素。

备注

要执行的第一个目标在运行时指定。目标可能依赖于其他目标。例如,要部署的目标依赖于要编译的目标。MSBuild 引擎按照依赖项在 DependsOnTargets 属性中的显示顺序,从左至右依次执行这些依赖项。有关更多信息,请参见 MSBuild 目标

一个目标在生成过程中仅执行一次,即便有多个目标依赖于它也是如此。

如果由于某个目标的 Condition 属性的计算结果为 false 而跳过了该目标,但是在生成过程的后期调用该目标,并且它的 Condition 属性在当时的计算结果为 true,那么仍然可以执行该目标。

示例

下面的代码示例演示执行 Csc 任务的 Target 元素。

<Target Name="Compile" DependsOnTarget="Resources" >
    <Csc Sources="@(CSFile)"
          TargetType="library"
          Resources="@(CompiledResources)"
          EmitDebugInformation="$(includeDebugInformation)"
          References="@(Reference)"
          DebugType="$(debuggingType)" >
        <Output TaskParameter="OutputAssembly"
                  ItemName="FinalAssemblyName" />
    </Csc>
</Target>

请参见

概念

MSBuild 目标

MSBuild 项目文件架构引用