Compartir a través de


Elemento UsingTask (MSBuild)

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

<Project><UsingTask>

Syntax

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

Nota:

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

Atributos y elementos

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

Attributes

Atributo Description
Architecture Atributo opcional.

Especifica que la tarea debe ejecutarse en un proceso de bits especificado. Si el proceso actual no cumple el requisito, la tarea se ejecuta en un proceso de host de tareas que sí lo hace.

Los valores admitidos son x86 (32 bits), x64 (64 bits), CurrentArchitecturey * (cualquier arquitectura).
AssemblyName Se requiere el AssemblyName atributo o el AssemblyFile atributo .

Nombre del ensamblado que se va a cargar. El AssemblyName atributo acepta ensamblados con nombre seguro, aunque no se requiere nomenclatura segura. El uso de este atributo es equivalente a cargar un ensamblado mediante el Load método en .NET.

No puede usar este atributo si se usa el AssemblyFile atributo .
AssemblyFile Se requiere el AssemblyName atributo o AssemblyFile .

Ruta de acceso del archivo del ensamblado. Este atributo acepta rutas de acceso completas o rutas de acceso relativas. Las rutas de acceso relativas son relativas al directorio del archivo de proyecto o al archivo de destinos donde se declara el UsingTask elemento. El uso de este atributo es equivalente a cargar un ensamblado mediante el LoadFrom método en .NET.

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

Especifica que este UsingTask elemento debe ser más prioritario 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 debe ejecutarse en un entorno de ejecución de .NET Framework de la versión especificada. Si el proceso actual no cumple el requisito, la tarea se ejecuta en un proceso de host de tareas que sí lo hace.

Los valores admitidos son "NET" (.NET Core y .NET 5 o superior), CLR2 (.NET Framework 3.5), CLR4 (.NET Framework 4.7.2 o superior), CurrentRuntime, NET (a partir de .NET 10 o superior) y * (cualquier entorno de ejecución). Solo puede llamar a NET tareas en tiempo de ejecución cuando ejecute .NET Framework MSBuild cuando use MSBuild 18.0 (Visual Studio 2026 o posterior) o el SDK de .NET 10 o posterior, y 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 especificado Task . El usuario también puede especificar un Task elemento como elemento secundario que el generador de tareas recibe y usa para generar la tarea. El contenido de son específicos del generador de Task 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 hacer referencia desde un ensamblado. Si es posible ambigüedades, este atributo siempre debe especificar espacios de nombres completos. Si hay ambigüedades, MSBuild elige una coincidencia arbitraria, lo 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 Description
ParameterGroup Conjunto de parámetros que aparecen en la tarea generada por el especificado TaskFactory.
tarea Los datos que se pasan a TaskFactory para generar una instancia de la tarea.

Elementos primarios

Elemento Description
Proyecto Elemento raíz necesario de un archivo de proyecto de MSBuild.

Observaciones

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 UsingTask elementos incluidos en el archivo de proyecto directamente o a través de un archivo de proyecto importado. Para obtener más información, vea Tasks.

Nota:

Las propiedades y los elementos de nivel de proyecto no tienen ningún significado si el UsingTask elemento procede de uno de los archivos .tasks que se registran globalmente con el motor de MSBuild. Los valores de nivel de proyecto no son globales para MSBuild.

En MSBuild 4.0, el uso de tareas se puede cargar desde .overridetask archivos.

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

Ejemplo 1

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

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

Dado que no hay o RuntimeTaskHost especificado, la tarea se ejecuta en el proceso de MSBuild, en el entorno de ejecución y la arquitectura que se ejecutan para una compilación determinada.

Ejemplo 2

En el ejemplo siguiente se muestra cómo usar el UsingTask elemento con un AssemblyName atributo y un personalizado TaskFactory 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