Elemento UsingTask (MSBuild)

Asigna la tarea a la que se hace referencia en un elemento Tarea al ensamblado que contiene la implementación de la tarea.

<Project><UsingTask>

Sintaxis

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

Nota:

A diferencia de las propiedades y los elementos, se usará el primer elemento UsingTask que se aplica a un TaskName; para invalidar tareas, debe definir un nuevo elemento UsingTaskantes del ya existente o especificar Override="true" en el UsingTask nuevo.

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo Descripción
Architecture Atributo opcional.

Especifica que la tarea debe ejecutarse en un proceso del valor de bits especificado. Si el proceso actual no satisface el requisito, la tarea se ejecutará en un proceso de host de la tarea que sí lo hace.

Los valores admitidos son x86 (32 bits), x64 (64 bits), CurrentArchitecture y * (cualquier arquitectura).
AssemblyName El atributo AssemblyName o AssemblyFile son obligatorios.

Nombre del ensamblado que se va a cargar. El atributo AssemblyName acepta ensamblados con nombre seguro, aunque no es necesario usar nombres seguros. Usar este atributo es equivalente a cargar un ensamblado mediante el método Load en .NET.

No puede usar este atributo si se usa el atributo AssemblyFile.
AssemblyFile El atributo AssemblyName o AssemblyFile son obligatorios.

Ruta de acceso del archivo del ensamblado. Este atributo acepta rutas de acceso completas o rutas de acceso relativas. Las rutas de acceso relativas están relacionadas con el directorio del archivo de proyecto o del archivo de destino cuando se declara el elemento UsingTask. Usar este atributo es equivalente a cargar un ensamblado mediante el método LoadFrom en .NET.

No puede usar este atributo si se usa el atributo AssemblyName.
Override Atributo opcional.

Especifica que este elemento UsingTask debe tener más prioridad que otros elementos que definen el mismo nombre de tarea. Solo se permite una invalidación por nombre de tarea. Se ha agregado en MSBuild 17.2.
Runtime Atributo opcional.

Especifica que la tarea se debe ejecutar en un entorno de ejecución de .NET Framework de la versión especificada. Si el proceso actual no satisface el requisito, la tarea se ejecutará en un proceso de host de la tarea que sí lo hace.

Los valores admitidos son "NET" (.NET Core y .NET 5 o posterior), CLR2 (.NET Framework 3.5), CLR4 (.NET Framework 4.7.2 o posterior), CurrentRuntime y * (cualquier entorno de ejecución). Tenga en cuenta que no puede llamar a las tareas de NET cuando ejecuta MSBuild de .NET Framework (CLR4) y que no puede llamar a las tareas CLR2/CLR4 desde .NET MSBuild (cuando se ejecuta dotnet build).
TaskFactory Atributo opcional.

Especifica la clase del ensamblado que es responsable de generar instancias del nombre Task especificado. El usuario también puede especificar Task como elemento secundario que el generador de tareas recibe y usa para generar la tarea. El contenido de Task es específico del generador de tareas. El valor predeterminado TaskFactory es AssemblyTaskFactory, que carga la tarea en el proceso en ejecución.
TaskName Atributo necesario.

Nombre de la tarea a la que se va a referencia desde un ensamblado. Si puede darse ambigüedad, este atributo siempre debe especificar espacios de nombres completos. En caso de ambigüedad, MSBuild elegirá a una coincidencia arbitraria que podría producir resultados inesperados.
Condition Atributo opcional.

Condición que se va a evaluar. Para obtener más información, consulte Condiciones.

Elementos secundarios

Elemento Descripción
ParameterGroup Conjunto de parámetros que aparecen en la tarea que se genera mediante el objeto TaskFactory especificado.
Task Datos que se pasan a TaskFactory para generar una instancia de la tarea.

Elementos primarios

Elemento Descripción
Proyecto Elemento raíz necesario de un archivo de proyecto de MSBuild.

Comentarios

Se puede hacer referencia a variables de entorno, propiedades de línea de comandos, propiedades de nivel de proyecto y elementos de nivel de proyecto en los elementos UsingTask incluidos en el archivo de proyecto, ya sea directamente o a través de un archivo de proyecto importado. Para obtener más información, consulte Tareas.

Nota

Las propiedades y los elementos de nivel de proyecto no tienen ningún sentido si el elemento UsingTask proviene de uno de los archivos .tasks registrados globalmente con el motor MSBuild. Los valores de nivel de proyecto no son globales en MSBuild.

En MSBuild 4.0, el uso de tareas puede cargarse a partir de archivos .overridetask.

El ensamblado que contiene la tarea personalizada se carga cuando se usa Task por primera vez.

Ejemplo 1

En el ejemplo siguiente se muestra cómo usar el elemento UsingTask con un atributo AssemblyFile.

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

Dado que no hay Runtime o TaskHost especificado, la tarea se ejecutará en el proceso de MSBuild, en el tiempo de ejecución y la arquitectura que se ejecuten para una compilación determinada.

Ejemplo 2

En el siguiente ejemplo se muestra cómo usar el elemento UsingTask con un atributo AssemblyName y un TaskFactory personalizado definido en ese ensamblado.

<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 también