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 UsingTask
elemento que se aplica a ; TaskName
para invalidar las tareas debe definir un nuevo UsingTask
antes 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.
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 o Runtime
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>