Elemento de destino (MSBuild)
Contém um conjunto de tarefas para que MSBuild é executado em sequência.
<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 elementos filho, atributos, e elementos pai.
Atributos
Atributo |
Descrição |
---|---|
Name |
Atributo necessário. O nome de destino. |
Condition |
Atributo opcional. A condição a ser avaliada.Se a condição for avaliada como false, o destino não executarão o corpo de destino ou nenhum destinos que são definidos no atributo de DependsOnTargets .Para obter mais informações sobre as circunstâncias, consulte Condições do MSBuild. |
Inputs |
Atributo opcional. Os arquivos que formam entradas no destino.Vários arquivos são separadas por ponto-e-vírgula.Os carimbos de data/hora dos arquivos serão comparados com os carimbos de data/hora dos arquivos em Outputs para determinar se Target é atualizado.Para obter mais informações, consulte As compilações incrementais, Como: aumentar incrementalmente, e Transformações do MSBuild. |
Outputs |
Atributo opcional. Os arquivos que formam saída neste destino.Vários arquivos são separadas por ponto-e-vírgula.Os carimbos de data/hora dos arquivos serão comparados com os carimbos de data/hora dos arquivos em Inputs para determinar se Target é atualizado.Para obter mais informações, consulte As compilações incrementais, Como: aumentar incrementalmente, e Transformações do MSBuild. |
Returns |
Atributo opcional. O conjunto de itens que estarão disponíveis para tarefas que chamam este destino, por exemplo, o MSBuild tarefas.Os vários destinos são separadas por ponto-e-vírgula.Se os destinos no arquivo não têm nenhum atributo de Returns , os atributos de saída são usados em vez dessa finalidade. |
KeepDuplicateOutputs |
Atributo booleano opcional. Se true, várias referências para o mesmo item nos retornos de destino é identificado.Por padrão, esse atributo é false. |
BeforeTargets |
Atributo opcional. Uma lista separada ponto-e-vírgula- de nomes de destino. Quando especificado, indica que este destino deve executar antes que o destino ou destinos específicos.Isso permite que o autor do projeto estender um dataset existente de destinos sem modificá-los diretamente.Para obter mais informações, consulte Ordem de compilação de destino. |
AfterTargets |
Atributo opcional. Uma lista separada ponto-e-vírgula- de nomes de destino.Quando especificado, indica que este destino deve executar após o destino ou destinos específicos.Isso permite que o autor do projeto estender um dataset existente de destinos sem modificá-los diretamente.Para obter mais informações, consulte Ordem de compilação de destino. |
DependsOnTargets |
Atributo opcional. Destinos que devem ser executados antes que esse destino pode ser executado ou análise de nível superior de dependência podem ocorrer.Os vários destinos são separadas por ponto-e-vírgula. |
Label |
Atributo opcional. Um identificador que possa identificar ou ordenar os elementos de usuário e do sistema. |
Elementos filho
Elemento |
Descrição |
---|---|
Cria e executa uma instância de uma tarefa de MSBuild .Pode haver zero ou mais tarefas em um destino. |
|
Contém um conjunto de elementos definidos pelo usuário de Property .Iniciando no .NET Framework 3.5, um elemento de Target pode conter elementos de PropertyGroup . |
|
Contém um conjunto de elementos definidos pelo usuário de Item .Iniciando no .NET Framework 3.5, um elemento de Target pode conter elementos de ItemGroup .Para obter mais informações, consulte Itens do MSBuild. |
|
Faz com que um ou vários destinos executem se o atributo de ContinueOnError é ErrorAndStop (ou false) para uma tarefa falha.Pode haver zero ou mais elementos de OnError em um destino.Se os elementos de OnError estiverem presentes, devem ser os últimos elementos no elemento de Target . Para obter informações sobre o atributo de ContinueOnError , consulte Elemento Task (MSBuild). |
Elementos pai
Elemento |
Descrição |
---|---|
Elemento raiz necessário para um arquivo de projeto de MSBuild . |
Comentários
O primeiro destino para executar é especificado em tempo de execução.Destinos podem ter dependências em outros destino.Por exemplo, um destino para implantação depende de um destino para a compilação.O mecanismo de MSBuild executa dependências na ordem em que aparecem no atributo de DependsOnTargets , da esquerda para a direita.Para obter mais informações, consulte Destinos do MSBuild.
Um destino é feita apenas uma vez durante uma compilação, mesmo se mais de um alvo tem uma dependência nele.
Se um destino é tiver ignorado de Condition porque o atributo avalia a false, ainda pode ser executado se é invocado posteriormente na compilação e o atributo de Condition avalia a true no momento.
Antes do MSBuild 4, Target retornou os itens que são especificados no atributo de Outputs .Para fazer isso, o MSBuild tinha que gravar esses itens no caso das tarefas mais tarde na compilação. os solicitadaPorque não houve nenhuma maneira para indicar que tiveram destinos saída que os chamadores exigiriam, MSBuild acumulou todos os itens de qualquer Outputs em qualquer Targetchamado S.Isso resulta em escala problemas para compilações que tinha um grande número de itens de saída.
Se o usuário especifica Returns em qualquer elemento de Target em um projeto, então somente o Targets que tem um registro de atributo de Returns esses itens.
Target pode conter um atributo de Outputs e um atributo de Returns .Outputs é usado com Inputs para determinar se o destino for atualizado.Returns, se presentes, substitui o valor de Outputs para determinar quais itens são retornados aos chamadores.Se Returns não está presente, então Outputs será feito disponível aos chamadores a não ser que em casos descreve anteriormente.
Antes do MSBuild 4, quando o Target incluiu várias referências para o mesmo item em seu Outputs, esses itens duplicados poderiam ser gravados.Em compilações muito grandes que tinha um grande número de saída e muitas projeto interdependências, isso resultaria em uma grande quantidade de memória ser desperdiçada porque os itens duplicados não foram de qualquer uso.Quando o atributo de KeepDuplicateOutputs é definido como true, essas duplicatas sejam registrados.
Exemplo
O exemplo de código a seguir mostra um elemento de Target que executa a tarefa de Csc .
<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>