Compartilhar via


Elemento de destino (MSBuild)

Contém um conjunto de tarefas para o MSBuild ser executado sequencialmente.

<Destino do projeto><>

Sintaxe

<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 e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Attributes

Attribute Description
Name Atributo necessário.

O nome do destino. Um nome de destino pode conter qualquer caractere, exceto $@()%*?..
Condition Atributo opcional.

A condição a ser avaliada. Se a condição for avaliada false, o destino não executará o corpo do destino ou quaisquer destinos definidos no DependsOnTargets atributo. Para obter mais informações sobre condições, consulte Condições.
Inputs Atributo opcional.

Os arquivos que formam entradas nesse destino. Vários arquivos são separados por ponto-e-vírgula. Os carimbos de data/hora dos arquivos serão comparados com os carimbos de data/hora dos arquivos Outputs para determinar se o Target valor está atualizado. Para obter mais informações, consulte builds incrementais, Como criar incrementalmente e Transformações.
Outputs Atributo opcional.

Os arquivos que formam saídas para esse destino. Vários arquivos são separados por ponto-e-vírgula. Os carimbos de data/hora dos arquivos serão comparados com os carimbos de data/hora dos arquivos Inputs para determinar se o Target valor está atualizado. Para obter mais informações, consulte builds incrementais, Como criar incrementalmente e Transformações.
Returns Atributo opcional.

O conjunto de itens que serão disponibilizados para tarefas que invocam esse destino, por exemplo, tarefas do MSBuild. Vários destinos são separados por ponto-e-vírgula. Se os destinos no arquivo não Returns tiverem atributos, os atributos Saídas serão usados para essa finalidade.
KeepDuplicateOutputs Atributo booliano opcional.

Se true, várias referências ao mesmo item nos Retornos do destino serão registradas. Por padrão, esse atributo é false.
BeforeTargets Atributo opcional.

Uma lista separada por ponto-e-vírgula de nomes de destino. Quando especificado, indica que esse destino deve ser executado antes dos destinos ou destinos especificados. Isso permite que o autor do projeto estenda um conjunto existente de destinos sem modificá-los diretamente. Para obter mais informações, consulte a ordem de build de destino.
AfterTargets Atributo opcional.

Uma lista separada por ponto-e-vírgula de nomes de destino. Quando especificado, indica que esse destino deve ser executado após o destino ou os destinos especificados. Isso permite que o autor do projeto estenda um conjunto existente de destinos sem modificá-los diretamente. Para obter mais informações, consulte a ordem de build de destino.
DependsOnTargets Atributo opcional.

Os destinos que devem ser executados antes que esse destino possa ser executado ou a análise de dependência de nível superior possa ocorrer. Vários destinos são separados por ponto-e-vírgula.
Label Atributo opcional.

Um identificador que pode identificar ou ordenar elementos do sistema e do usuário.

Elementos filho

Elemento Description
Tarefa Cria e executa uma instância de uma tarefa do MSBuild. Pode haver zero ou mais tarefas em um destino.
PropertyGroup Contém um conjunto de elementos definidos pelo Property usuário. Um Target elemento pode conter PropertyGroup elementos.
ItemGroup Contém um conjunto de elementos definidos pelo Item usuário. Um Target elemento pode conter ItemGroup elementos. Para obter mais informações, consulte Itens.
OnError Faz com que um ou mais destinos sejam executados se o ContinueOnError atributo for ErrorAndStop (ou false) para uma tarefa com falha. Pode haver zero ou mais OnError elementos em um destino. Se OnError os elementos estiverem presentes, eles deverão ser os últimos elementos no Target elemento.

Para obter informações sobre o ContinueOnError atributo, consulte o elemento Task (MSBuild).

Elementos pai

Elemento Description
Projeto Elemento raiz necessário de um arquivo de projeto do MSBuild.

Observações

O primeiro destino a ser executado é especificado em tempo de execução. Os destinos podem ter dependências em outros destinos. Por exemplo, um destino para implantação depende de um destino para compilação. O mecanismo MSBuild executa dependências na ordem em que aparecem no DependsOnTargets atributo, da esquerda para a direita. Para obter mais informações, consulte Destinos.

O MSBuild depende da ordem de importação e a última definição de um destino com um atributo específico Name é a definição usada.

Um destino só é executado uma vez durante um build, mesmo que mais de um destino tenha uma dependência nele.

Se um destino for ignorado porque seu Condition atributo é avaliado false, ele ainda poderá ser executado se for invocado posteriormente no build e seu Condition atributo for avaliado true nesse momento.

Antes do MSBuild 4, Target retornava todos os itens especificados no Outputs atributo. Para fazer isso, o MSBuild teve que registrar esses itens caso as tarefas posteriores no build os solicitassem. Como não havia como indicar quais destinos tinham saídas que os chamadores precisariam, o MSBuild acumulava todos os itens de todos os Outputs s invocados Target. Isso leva a problemas de dimensionamento para builds que tinham um grande número de itens de saída.

Se o usuário especificar um Returns elemento em qualquer Target elemento em um projeto, somente aqueles Targetque têm um Returns registro de atributo registrarão esses itens.

Um Target pode conter um Outputs atributo e um Returns atributo. Outputs é usado para Inputs determinar se o destino é up-to-date. Returns, se presente, substitui o valor de Outputs determinar quais itens são retornados aos chamadores. Se Returns não estiver presente, então Outputs será disponibilizado para os chamadores, exceto no caso descrito anteriormente.

Antes do MSBuild 4, sempre que um Target várias referências incluídas ao mesmo item em seu Outputs, esses itens duplicados seriam registrados. Em builds muito grandes que tinham um grande número de saídas e muitas interdependências de projeto, isso faria com que uma grande quantidade de memória fosse desperdiçada porque os itens duplicados não eram de qualquer uso. Quando o KeepDuplicateOutputs atributo é definido como true, essas duplicatas são registradas.

Example

O exemplo de código a seguir mostra um Target elemento que executa a Csc tarefa.

<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 também