Élément UsingTask (MSBuild)

Mappe la tâche référencée dans un élément Task sur l’assembly qui contient l’implémentation de la tâche.

<Project><UsingTask>

Syntaxe

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

Remarque

Contrairement aux propriétés et aux éléments, le premier élément UsingTask qui s’applique à un TaskName est utilisé. Pour remplacer des tâches, vous devez définir un nouveau UsingTaskavant celui qui existe déjà, ou spécifier Override="true" dans le nouvel élément UsingTask.

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description
Architecture Attribut facultatif.

Spécifie que la tâche doit s’exécuter dans un processus ayant le nombre de bits spécifié. Si le processus actuel ne répond pas aux besoins, la tâche est exécutée dans un processus hôte de tâche qui s’en charge.

Les valeurs prises en charge sont x86 (32 bits), x64 (64 bits), CurrentArchitecture et * (n’importe quelle architecture).
AssemblyName L'attribut AssemblyName ou AssemblyFile est requis.

Nom de l'assembly à charger. L'attribut AssemblyName accepte les assemblys avec nom fort, bien que les noms forts ne soient pas obligatoires. L'utilisation de cet attribut équivaut au chargement d'un assembly à l'aide de la méthode Load dans .NET.

Vous ne pouvez pas utiliser cet attribut si l'attribut AssemblyFile est utilisé.
AssemblyFile L'attribut AssemblyName ou AssemblyFile est requis.

Chemin d'accès du fichier de l'assembly. Cet attribut accepte les chemins d'accès complets ou relatifs. Les chemins d'accès relatifs sont relatifs au répertoire du fichier projet ou du fichier .targets où l'élément UsingTask est déclaré. L'utilisation de cet attribut équivaut au chargement d'un assembly à l'aide de la méthode LoadFrom dans .NET.

Vous ne pouvez pas utiliser cet attribut si l'attribut AssemblyName est utilisé.
Override Attribut facultatif.

Spécifie que cet élément UsingTask doit être d’une priorité plus élevée que d’autres éléments définissant le même nom de tâche. Un seul remplacement est autorisé par nom de tâche. Ajouté dans MSBuild 17.2.
Runtime Attribut facultatif.

Spécifie que la tâche doit s’exécuter dans un runtime .NET Framework correspondant à la version spécifiée. Si le processus actuel ne répond pas aux besoins, la tâche est exécutée dans un processus hôte de tâche qui s’en charge.

Les valeurs prises en charge sont « NET » (.NET Core et .NET 5 ou version ultérieure), CLR2 (.NET Framework 3.5), CLR4 (.NET Framework 4.7.2 ou version ultérieure), CurrentRuntime et * (n’importe quel runtime). Notez que vous ne pouvez pas appeler de tâches NET quand vous exécutez MSBuild pour le .NET Framework (CLR4), et que vous ne pouvez pas appeler de tâches CLR2/CLR4 à partir de MSBuild pour .NET (quand dotnet build est exécuté).
TaskFactory Attribut facultatif.

Spécifie la classe incluse dans l'assembly qui est responsable de la génération des instances du nom Task spécifié. L'utilisateur peut également spécifier un Task en tant qu'élément enfant que la fabrique de tâches reçoit et utilise pour générer la tâche. Le contenu de Task est propre à la fabrique de tâches. Le TaskFactory par défaut est AssemblyTaskFactory, qui charge la tâche dans le processus en cours d’exécution.
TaskName Attribut requis.

Nom de la tâche à référencer à partir d'un assembly. Si des ambiguïtés sont possibles, cet attribut doit toujours spécifier des espaces de noms complets. S'il existe des ambiguïtés, MSBuild choisit une correspondance arbitraire, laquelle peut produire des résultats inattendus.
Condition Attribut facultatif.

Condition à évaluer. Pour plus d’informations, consultez l’article Conditions (Conditions MSBuild).

Éléments enfants

Élément Description
ParameterGroup Jeu de paramètres qui apparaissent sur la tâche générée par le TaskFactory spécifié.
Tâche Données transférées au TaskFactory pour générer une instance de la tâche.

Éléments parents

Élément Description
Projet Élément racine obligatoire d’un fichier projet MSBuild.

Remarques

Les variables d'environnement, propriétés de ligne de commande, propriétés au niveau du projet et éléments au niveau du projet peuvent être référencés n'importe où dans les éléments UsingTask inclus dans le fichier projet, directement ou via un fichier projet importé. Pour plus d’informations, consultez l’article Tâches MSBuild.

Notes

Les propriétés et éléments de niveau projet n’ont aucune signification si l’élément UsingTask provient de l’un des fichiers .tasks inscrits globalement auprès du moteur MSBuild. Les valeurs au niveau du projet ne sont pas globales pour MSBuild.

Dans MSBuild 4.0, les tâches peuvent être chargées à partir de fichiers .overridetask.

L’assembly contenant la tâche personnalisée est chargé quand Task est utilisé pour la première fois.

Exemple 1

L'exemple suivant montre comment utiliser l'élément UsingTask avec un attribut AssemblyFile.

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

Comme ni Runtime ni TaskHost ne sont spécifiés, la tâche exécute le processus MSBuild, dans le runtime et l’architecture qui s’exécutent pour une build donnée.

Exemple 2

L’exemple suivant montre comment utiliser l’élément UsingTask avec un attribut AssemblyName et un TaskFactory personnalisé défini dans cet 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>

Voir aussi