É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 UsingTask
élément qui s’applique à un TaskName
sera utilisé ; pour remplacer les tâches, vous devez définir un nouveau UsingTask
avant celui existant, ou spécifier Override="true"
dans le nouveau 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 il n’y a pas ou TaskHost
spécifiéRuntime
, la tâche est exécutée dans 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>