Elemento UsingTask (MSBuild)

Mapeia a tarefa que é referenciada em um elemento Tarefa para o assembly que contém a implementação de tarefas.

<Projeto><UsingTask>

Syntax

<UsingTask TaskName="TaskName"
    AssemblyName = "AssemblyName"
    TaskFactory = "ClassName"
    Condition="'String A'=='String B'" />

Observação

Ao contrário das propriedades e dos itens, o primeiroUsingTask elemento que se aplica a um TaskName será usado; para substituir tarefas, você deve definir um novo UsingTaskantes do existente ou especificar Override="true" no novo UsingTask.

Atributos e elementos

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

Atributos

Atributo Descrição
Architecture Atributo opcional.

Especifica que a tarefa deve ser executada em um processo com o número de bit especificado. Se o processo atual não atender ao requisito, a tarefa será executada em um processo do host de tarefas que o faça.

Os valores com suporte são x86 (32 bits), x64 (64 bits), CurrentArchitecture e * (qualquer arquitetura).
AssemblyName O atributo AssemblyName ou o AssemblyFile é necessário.

O nome do assembly a ser carregado. O atributo AssemblyName aceita os assemblies de nomes fortes, embora não seja necessário com nomes fortes. Usar esse atributo é equivalente a carregar um assembly usando o método Load no .NET.

Você não poderá usar esse atributo se o atributo AssemblyFile for usado.
AssemblyFile O atributo AssemblyName ou AssemblyFile é necessário.

O caminho do arquivo do assembly. Esse atributo aceita caminhos completos ou caminhos relativos. Caminhos relativos são relativos ao diretório do arquivo de projeto ou arquivo de destino no qual o elemento UsingTask é declarado. Usar esse atributo é equivalente a carregar um assembly usando o método LoadFrom no .NET.

Você não poderá usar esse atributo se o atributo AssemblyName for usado.
Override Atributo opcional.

Especifica que esse elemento UsingTask deve ter prioridade mais alta do que outros elementos que definem o mesmo nome de tarefa. Apenas uma substituição é permitida por nome de tarefa. Adicionado no MSBuild 17.2.
Runtime Atributo opcional.

Especifica que a tarefa deve ser executada em um runtime .NET Framework da versão especificada. Se o processo atual não atender ao requisito, a tarefa será executada em um processo do host de tarefas que o faça.

Os valores com suporte são 'NET' (.NET Core e .NET 5 ou superior), CLR2 (.NET Framework 3,5), CLR4 (.NET Framework 4.7.2 ou superior), CurrentRuntime e * (qualquer runtime). Observe que você não pode chamar tarefas NET ao executar o MSBuild do .NET Framework (CLR4) e não pode chamar tarefas CLR2/CLR4 do MSBuild do .NET (ao executar dotnet build).
TaskFactory Atributo opcional.

Especifica a classe no assembly que é responsável por gerar instâncias do nome Task especificado. O usuário também pode especificar um Task como um elemento filho que a fábrica de tarefa recebe e usa para gerar a tarefa. O conteúdo de Task é específico para a fábrica da tarefa. O padrão TaskFactory é AssemblyTaskFactory, que carrega a tarefa no processo em execução.
TaskName Atributo obrigatório.

O nome da tarefa para referência de um assembly. Se for possível usar ambiguidades, esse atributo sempre deverá especificar namespaces completos. Se houver ambiguidades, o MSBuild escolherá uma correspondência arbitrária, que poderá produzir resultados inesperados.
Condition Atributo opcional.

A condição que será avaliada. Para obter mais informações, consulte Condições.

Elementos filho

Elemento Descrição
ParameterGroup O conjunto de parâmetros que aparecem na tarefa que é gerada pelo TaskFactory especificado.
Tarefa Os dados que são passados para o TaskFactory para gerar uma instância da tarefa.

Elementos pai

Elemento Descrição
Projeto Elemento raiz necessário de um arquivo de projeto do MSBuild.

Comentários

Variáveis de ambiente, propriedades de linha de comando, propriedades no nível do projeto e itens no nível do projeto podem ser referenciadas no elemento UsingTask incluído no arquivo de projeto, explicitamente ou por meio de um arquivo de projeto importado. Para obter mais informações, consulte Tarefas.

Observação

Propriedades e itens no nível do projeto não têm significado se o elemento UsingTask for proveniente de um dos arquivos .tasks globalmente registrados com o mecanismo do MSBuild. Valores no nível do projeto não são globais ao MSBuild.

No MSBuild 4.0, usar tarefas pode ser carregado a partir de arquivos .overridetask.

O assembly que contém a tarefa personalizada é carregado quando o Task é usado pela primeira vez.

Exemplo 1

O exemplo a seguir mostra como usar o elemento UsingTask com um atributo AssemblyFile.

<UsingTask TaskName="Email"
           AssemblyFile="c:\myTasks\myTask.dll" />

Como não há nenhum Runtime ou TaskHost especificado, a tarefa será executada no processo do MSBuild, no runtime e na arquitetura que estão em execução para um determinado build.

Exemplo 2

O exemplo a seguir mostra como usar o elemento UsingTask com um atributo AssemblyName e um TaskFactory personalizado definido nesse assembly.

<UsingTask TaskName="MyTask" AssemblyName="My.Assembly" TaskFactory="MyTaskFactory">
       <ParameterGroup>
              <Parameter1 ParameterType="System.String" Required="False" Output="False"/>
              <Parameter2 ParameterType="System.Int" Required="True" Output="False"/>
              ...
</ParameterGroup>
       <Task>
      ... Task factory-specific data ...
       </Task>
</UsingTask>

Confira também