Compartir a través de


Elemento Target (MSBuild)

Contiene un conjunto de tareas para que MSBuild se ejecute secuencialmente.

<Destino del proyecto><>

Syntax

<Target Name="Target Name"
        Inputs="Inputs"
        Outputs="Outputs"
        Returns="Returns"
        KeepDuplicateOutputs="true/false"
        BeforeTargets="Targets"
        AfterTargets="Targets"
        DependsOnTargets="DependentTarget"
        Condition="'String A' == 'String B'"
        Label="Label">
    <Task>... </Task>
    <PropertyGroup>... </PropertyGroup>
    <ItemGroup>... </ItemGroup>
    <OnError... />
</Target>

Atributos y elementos

En las secciones siguientes se describen atributos, elementos secundarios y elementos primarios.

Attributes

Atributo Description
Name Atributo obligatorio.

Nombre del destino. Un nombre de destino puede contener cualquier carácter excepto $@()%*?..
Condition Atributo opcional.

Condición que se va a evaluar. Si la condición se evalúa como false, el destino no ejecutará el cuerpo del destino ni los destinos establecidos en el DependsOnTargets atributo . Para obtener más información sobre las condiciones, vea Condiciones.
Inputs Atributo opcional.

Los archivos que forman entradas en este destino. Varios archivos están separados por punto y coma. Las marcas de tiempo de los archivos se compararán con las marcas de tiempo de los archivos en Outputs para determinar si está Target actualizado. Para obtener más información, vea Compilaciones incrementales, Cómo: Compilar incrementalmente y transformaciones.
Outputs Atributo opcional.

Los archivos que forman salidas en este destino. Varios archivos están separados por punto y coma. Las marcas de tiempo de los archivos se compararán con las marcas de tiempo de los archivos en Inputs para determinar si está Target actualizado. Para obtener más información, vea Compilaciones incrementales, Cómo: Compilar incrementalmente y transformaciones.
Returns Atributo opcional.

Conjunto de elementos que estarán disponibles para las tareas que invocan este destino, por ejemplo, tareas de MSBuild. Varios destinos están separados por punto y coma. Si los destinos del archivo no Returns tienen atributos, los atributos Outputs se usan en su lugar para este propósito.
KeepDuplicateOutputs Atributo booleano opcional.

Si truees , se registran varias referencias al mismo elemento del valor Returns del destino. De forma predeterminada, este atributo es false.
BeforeTargets Atributo opcional.

Una lista separada por punto y coma de nombres de destino. Cuando se especifica, indica que este destino debe ejecutarse antes del destino o destinos especificados. Esto permite al autor del proyecto ampliar un conjunto existente de destinos sin modificarlos directamente. Para obtener más información, consulte Orden de compilación de destino.
AfterTargets Atributo opcional.

Una lista separada por punto y coma de nombres de destino. Cuando se especifica, indica que este destino debe ejecutarse después del destino o destinos especificados. Esto permite al autor del proyecto ampliar un conjunto existente de destinos sin modificarlos directamente. Para obtener más información, consulte Orden de compilación de destino.
DependsOnTargets Atributo opcional.

Los destinos que se deben ejecutar antes de que este destino se pueda ejecutar o se pueda realizar el análisis de dependencias de nivel superior. Varios destinos están separados por punto y coma.
Label Atributo opcional.

Identificador que puede identificar o ordenar elementos del sistema y del usuario.

Elementos secundarios

Elemento Description
Tarea Crea y ejecuta una instancia de una tarea de MSBuild. Puede haber cero o más tareas en un destino.
PropertyGroup Contiene un conjunto de elementos definidos por Property el usuario. Un Target elemento puede contener PropertyGroup elementos.
ItemGroup Contiene un conjunto de elementos definidos por Item el usuario. Un Target elemento puede contener ItemGroup elementos. Para obtener más información, vea Elementos.
OnError Hace que uno o varios destinos se ejecuten si el ContinueOnError atributo es ErrorAndStop (o false) para una tarea con error. Puede haber cero o más OnError elementos en un destino. Si OnError los elementos están presentes, deben ser los últimos elementos del Target elemento.

Para obtener información sobre el ContinueOnError atributo, consulte Elemento Task (MSBuild).

Elementos primarios

Elemento Description
Proyecto Elemento raíz necesario de un archivo de proyecto de MSBuild.

Observaciones

El primer destino que se va a ejecutar se especifica en tiempo de ejecución. Los destinos pueden tener dependencias en otros destinos. Por ejemplo, un destino para la implementación depende de un destino para la compilación. El motor de MSBuild ejecuta dependencias en el orden en que aparecen en el DependsOnTargets atributo, de izquierda a derecha. Para obtener más información, consulte Destinos.

MSBuild depende del orden de importación y la última definición de un destino con un atributo específico Name es la definición usada.

Un destino solo se ejecuta una vez durante una compilación, incluso si más de un destino tiene una dependencia en él.

Si se omite un destino porque su Condition atributo se evalúa falsecomo , todavía se puede ejecutar si se invoca más adelante en la compilación y su Condition atributo se evalúa true como en ese momento.

Antes de MSBuild 4, Target devolvió los elementos especificados en el Outputs atributo . Para ello, MSBuild tenía que registrar estos elementos en caso de que las tareas posteriores en la compilación las solicitaran. Dado que no había ninguna manera de indicar qué destinos tenían salidas que los llamadores requerirían, MSBuild acumulaba todos los elementos de todos en Outputs todos los invocados Target. Esto conduce a problemas de escalado de compilaciones que tenían un gran número de elementos de salida.

Si el usuario especifica un Returns elemento en cualquier Target elemento de un proyecto, solo aquellos Targetque tienen un Returns atributo registran esos elementos.

Un Target puede contener un Outputs atributo y un Returns atributo . Outputs se usa con Inputs para determinar si el destino es up-to-date. Returns, si está presente, invalida el valor de Outputs para determinar qué elementos se devuelven a los autores de llamadas. Si Returns no está presente, Outputs se pondrá a disposición de los autores de llamadas excepto en el caso descrito anteriormente.

Antes de MSBuild 4, cada vez que un Target elemento incluía varias referencias al mismo elemento en su Outputs, esos elementos duplicados se registrarían. En compilaciones muy grandes que tenían un gran número de salidas y muchas interdependencias de proyecto, esto provocaría que se desperdiciase una gran cantidad de memoria porque los elementos duplicados no eran de ningún uso. Cuando el KeepDuplicateOutputs atributo se establece trueen , se registran estos duplicados.

Example

En el ejemplo de código siguiente se muestra un Target elemento que ejecuta la Csc tarea.

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

Consulte también