Partilhar via


UsingTask element (MSBuild)

Mapeia a tarefa referenciada num elemento Tarefa para o assembly que contém a implementação da tarefa.

<Projeto><UsingTask>

Sintaxe

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

Observação

Ao contrário das propriedades e itens, o primeiroUsingTask elemento que se aplica a TaskName é usado; para sobrepor tarefas deve definir uma nova UsingTaskantes da existente, ou especificar Override="true" na nova UsingTask.

Atributos e elementos

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

Attributes

Attribute Description
Architecture Atributo opcional.

Especifica que a tarefa deve ser executada num processo com a bitness especificada. Se o processo atual não satisfaz o requisito, a tarefa é executada num processo anfitrião que o faz.

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

O nome da assembleia a carregar. O AssemblyName atributo aceita assemblies com nomes fortes, embora não seja obrigatório o nome forte. Usar este atributo é equivalente a carregar um assembly usando o Load método em .NET.

Não podes usar este atributo se o AssemblyFile atributo for usado.
AssemblyFile Ou o AssemblyName ou o AssemblyFile atributo é obrigatório.

O caminho do ficheiro da assembleia. Este atributo aceita caminhos completos ou relativos. Os caminhos relativos são relativos ao diretório do ficheiro do projeto ou do ficheiro de destinos onde o UsingTask elemento é declarado. Usar este atributo é equivalente a carregar um assembly usando o LoadFrom método em .NET.

Não podes usar este atributo se o AssemblyName atributo for usado.
Override Atributo opcional.

Especifica que este UsingTask elemento deve ter prioridade superior aos outros elementos que definem o mesmo nome de tarefa. Só é permitido um override por nome da tarefa. Adicionado no MSBuild 17.2.
Runtime Atributo opcional.

Especifica que a tarefa deve ser executada num runtime do .NET Framework da versão especificada. Se o processo atual não satisfaz o requisito, a tarefa é executada num processo anfitrião que o faz.

Os valores suportados são 'NET' (.NET Core e .NET 5 ou superior), CLR2 (.NET Framework 3.5), CLR4 (.NET Framework 4.7.2 ou superior), CurrentRuntime, NET (a partir de .NET 10 ou superior) e * (qualquer runtime). Só podes chamar NET tarefas de Runtime quando estás a correr o .NET Framework MSBuild quando estás a usar o MSBuild 18.0 (Visual Studio 2026 ou posterior) ou o .NET SDK 10 ou superior, e não podes chamar tarefas CLR2/CLR4 a partir do .NET MSBuild (quando estás a correr dotnet build).
TaskFactory Atributo opcional.

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

O nome da tarefa a consultar numa assembleia. Se as ambiguidades forem possíveis, este atributo deve sempre especificar os namespaces completos. Se existirem ambiguidades, o MSBuild escolhe uma correspondência arbitrária, o que pode produzir resultados inesperados.
Condition Atributo opcional.

A condição a avaliar. Para obter mais informações, consulte Condições.

Elementos filho

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

Elementos pai

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

Observações

Variáveis de ambiente, propriedades da linha de comandos, propriedades ao nível do projeto e itens ao nível do projeto podem ser referenciados nos UsingTask elementos incluídos no ficheiro do projeto, seja diretamente ou através de um ficheiro de projeto importado. Para obter mais informações, consulte Tarefas.

Observação

As propriedades e itens ao nível do projeto não têm significado se o UsingTask elemento provém de um dos ficheiros .tasks que estão globalmente registados no motor MSBuild. Os valores ao nível do projeto não são globais para o MSBuild.

No MSBuild 4.0, a utilização de tarefas pode ser carregada a partir de .overridetask ficheiros.

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

Exemplo 1

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

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

Como não Runtime existe ou TaskHost especifica, a tarefa é executada no processo MSBuild, no tempo de execução e na arquitetura que estão a correr para uma dada compilação.

Exemplo 2

O exemplo seguinte mostra como usar o UsingTask elemento com um AssemblyName atributo e um personalizado TaskFactory definidos nessa assembleia.

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

Consulte também