Elemento de destino (MSBuild)
Contém um conjunto de tarefas para MSBuild para executar seqüencialmente.
<Target Name="Target Name"
DependsOnTargets="DependentTarget"
Inputs="Inputs"
Outputs="Outputs"
Returns="Returns"
KeepDuplicateOutputs="true/false"
BeforeTargets="Targets"
AfterTargets="Targets"
Condition="'String A' == 'String B'">
<Task>... </Task>
<OnError... />
</Target>
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho, e elementos pai.
Atributos
Atributo |
Descrição |
---|---|
Name |
Atributo obrigatório. O nome do destino. |
DependsOnTargets |
Atributo opcional. Os destinos que devem ser executados antes deste destino pode ser executado ou a análise de dependência de nível superior pode ocorrer. Vários destinos são separados por ponto e vírgula. |
Returns |
Atributo opcional. O conjunto de itens que serão disponibilizados para tarefas que invocam este destino, por exemplo, tarefas do MSBuild. Vários destinos são separados por ponto e vírgula. |
Inputs |
Atributo opcional. As entradas de item para este destino. Itens neste atributo são usados como as entradas na análise de dependência de nível superior. |
Outputs |
Atributo opcional. As saídas esperadas deste destino. Você pode aplicar transformações para os itens de entrada para gerar os itens de saída. Para obter mais informações sobre transformações, consulte Transformações do MSBuild. |
BeforeTargets |
Atributo opcional. Uma lista separada por ponto-e-vírgula dos nomes de destino. Quando especificado, indica que este destino deverá ser executado antes do destino especificado ou destinos. Isso permite que o autor do projeto estender um conjunto de destinos existentes sem modificá-los diretamente. |
AfterTargets |
Atributo opcional. Uma lista separada por ponto-e-vírgula dos nomes de destino. Quando especificado, indica que este destino deverá ser executado após o destino especificado ou destinos. Isso permite que o autor do projeto estender um conjunto de destinos existentes sem modificá-los diretamente. |
KeepDuplicateOutputs |
Atributo booleano opcional. Se true, várias referências ao mesmo item em saídas são registradas. Por padrão, esse atributo é false. |
Condition |
Atributo opcional. A condição a ser avaliada. Se a condição for avaliada como false, o destino não executará o corpo de destino ou de qualquer alvo que é definido na DependsOnTargets atributo. Para obter mais informações sobre as condições, consulte Condições do MSBuild. |
Elementos filho
Elemento |
Descrição |
---|---|
Cria e executa uma instância de um MSBuild de tarefas. Um destino pode ser zero ou mais tarefas. |
|
Faz com que um ou mais destinos executar se a ContinueOnError atributo é false para uma tarefa com falha. Pode haver zero ou mais OnError elementos em um destino. Se OnError elementos estiverem presentes, elas devem ser os últimos elementos de Target elemento. |
Elementos pai
Elemento |
Descrição |
---|---|
Elemento raiz necessários de um MSBuild arquivo de projeto. |
Comentários
O primeiro destino para executar é especificado em tempo de execução. Destinos podem possuir dependências em outros destinos. Por exemplo, um destino para a implantação depende de um destino de compilação. O MSBuild engine executa dependências na ordem em que aparecem na DependsOnTargets atributo, da esquerda para a direita. Para obter mais informações, consulte Destinos do MSBuild.
Um destino só é executado uma vez durante uma compilação, mesmo se mais de um destino tem uma dependência.
Se um destino é ignorado porque sua Condition atributo é avaliada como false, ele ainda pode ser executado se ela for chamada mais tarde na compilação e suas Condition atributo avalia true no momento.
Antes de MSBuild 4, Target retornou todos os itens que foram especificados no Outputs atributo. Para fazer isso, o MSBuild tinha Registrar estes itens, no caso de tarefas posteriormente na compilação solicitaram. Porque não havia nenhum modo para indicar quais destinos tinham saídas chamadores exigiria, MSBuild acumulados todos os itens de todos os Outputs em todas as chamadas Targets. Isso leva a problemas de compilações que tinham um grande número de itens de saída de dimensionamento.
Se o usuário Especifica um Returns em qualquer Target elemento em um projeto, apenas esses Targets tem um Returns atributo registrar esses itens.
A Target pode conter tanto um Outputs atributo e um Returns atributo. Outputsé usado com Inputs para determinar se o destino está atualizado. Returns, se presente, substitui o valor de Outputs para determinar quais itens serão retornados para os chamadores. Se Returns não está presente, em seguida, Outputs será disponibilizado para os chamadores, exceto no caso descrito anteriormente.
Antes de 4 de MSBuild, que sempre que uma Target incluído várias referências ao mesmo item no seu Outputs, esses itens duplicados seriam registrados. Cria muito grandes que tinha um grande número de saídas e muitas interdependências do projeto, isso poderia causar uma grande quantidade de memória para ser perdido porque os itens duplicados não eram de qualquer uso. Quando o KeepDuplicateOutputs atributo está definido como true, essas duplicatas não são armazenadas.
Exemplo
O seguinte código exemplo mostra um Target o elemento que executa o Csc de tarefas.
<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>