Tâches MSBuildMSBuild Tasks

Une plateforme de génération doit pouvoir exécuter plusieurs actions pendant le processus de génération.A build platform needs the ability to execute any number of actions during the build process. MSBuildMSBuild utilise des tâches pour effectuer ces actions. uses tasks to perform these actions. Une tâche est une unité de code exécutable utilisée par MSBuildMSBuild pour exécuter des opérations de génération atomiques.A task is a unit of executable code used by MSBuildMSBuild to perform atomic build operations.

Logique de tâcheTask Logic

Comme le format de fichier projet XML MSBuildMSBuild ne peut pas exécuter entièrement les opérations de génération seul, une logique de tâche doit être implémentée en dehors du fichier projet.The MSBuildMSBuild XML project file format cannot fully execute build operations on its own, so task logic must be implemented outside of the project file.

La logique d’exécution d’une tâche est implémentée en tant que classe .NET implémentant l’interface ITask, définie dans l’espace de noms Microsoft.Build.Framework.The execution logic of a task is implemented as a .NET class that implements the ITask interface, which is defined in the Microsoft.Build.Framework namespace.

La classe de tâche définit également les paramètres d’entrée et de sortie qui sont disponibles pour la tâche dans le fichier projet.The task class also defines the input and output parameters available to the task in the project file. Toutes les propriétés définissables publiques non statiques et non abstraites exposées par la classe de tâche sont accessibles dans le fichier projet en plaçant un attribut correspondant du même nom dans l’élément Task.All public settable non-static non-abstract properties exposed by the task class can be accessed in the project file by placing a corresponding attribute with the same name on the Task element.

Vous pouvez écrire votre propre tâche en créant une classe managée qui implémente l’interface ITask.You can write your own task by authoring a managed class that implements the ITask interface. Pour plus d’informations, consultez l’article Task Writing (Écriture de tâches).For more information, see Task Writing.

Exécution d’une tâche à partir d’un fichier projetExecuting a Task from a Project File

Avant d’exécuter une tâche dans votre fichier projet, vous devez d’abord mapper le type inclus dans l’assembly qui implémente la tâche au nom de la tâche avec l’élément UsingTask.Before executing a task in your project file, you must first map the type in the assembly that implements the task to the task name with the UsingTask element. Cette opération permet à MSBuildMSBuild de savoir où rechercher la logique d’exécution de votre tâche lorsqu’il la trouve dans votre fichier projet.This lets MSBuildMSBuild know where to look for the execution logic of your task when it finds it in your project file.

Pour exécuter une tâche dans un fichier projet MSBuildMSBuild, créez un élément pourvu du nom de la tâche comme enfant d’un élément Target.To execute a task in an MSBuildMSBuild project file, create an element with the name of the task as a child of a Target element. Si une tâche accepte des paramètres, ceux-ci sont transmis en tant qu’attributs de l’élément.If a task accepts parameters, these are passed as attributes of the element.

Les propriétés et les listes d’éléments MSBuildMSBuild peuvent être utilisées comme des paramètres.MSBuildMSBuild item lists and properties can be used as parameters. Par exemple, le code suivant appelle la tâche MakeDir et définit la valeur de la propriété Directories de l’objet MakeDir égale à la valeur de la propriété BuildDir déclarée dans l’exemple précédent.For example, the following code calls the MakeDir task and sets the value of the Directories property of the MakeDir object equal to the value of the BuildDir property declared in the previous example.

<Target Name="MakeBuildDirectory">  
    <MakeDir  
        Directories="$(BuildDir)" />  
</Target>  

Les tâches peuvent également retourner des informations au fichier projet, qui peuvent être stockées dans les éléments ou les propriétés en vue d’une utilisation ultérieure.Tasks can also return information to the project file, which can be stored in items or properties for later use. Par exemple, le code suivant appelle la tâche Copy et stocke les informations de la propriété en sortie CopiedFiles dans la liste d’éléments SuccessfullyCopiedFiles.For example, the following code calls the Copy task and stores the information from the CopiedFiles output property in the SuccessfullyCopiedFiles item list.

<Target Name="CopyFiles">  
    <Copy  
        SourceFiles="@(MySourceFiles)"  
        DestinationFolder="@(MyDestFolder)">  
        <Output  
            TaskParameter="CopiedFiles"  
            ItemName="SuccessfullyCopiedFiles"/>  
     </Copy>  
</Target>  

Tâches inclusesIncluded Tasks

MSBuildMSBuild est fourni avec de nombreuses tâches, par exemple Copy, qui copie des fichiers, MakeDir, qui crée des répertoires et Csc, qui compile des fichiers de code source Visual C#Visual C#. ships with many tasks such as Copy, which copies files, MakeDir, which creates directories, and Csc, which compiles Visual C#Visual C# source code files. Pour obtenir la liste complète des tâches disponibles et les informations sur leur utilisation, consultez l’article Task Reference (Informations de référence sur les tâches MSBuild).For a complete list of available tasks and usage information, see Task Reference.

Tâches substituéesOverridden Tasks

MSBuildMSBuild recherche des tâches à plusieurs emplacements. looks for tasks in several locations. Les fichiers portant l’extension .OverrideTasks, stockés dans les répertoires .NET Framework correspondent au premier emplacement.The first location is in files with the extension .OverrideTasks stored in the .NET Framework directories. Les tâches contenues dans ces fichiers remplacent toutes les autres tâches du même nom, notamment les tâches du fichier projet.Tasks in these files override any other tasks with the same names, including tasks in the project file. Les fichiers portant l’extension .Tasks, stockés dans les répertoires .NET Framework correspondent au second emplacement.The second location is in files with the extension .Tasks in the .NET Framework directories. Si la tâche est introuvable à l’un de ces emplacements, c’est celle contenue dans le fichier projet qui est utilisée.If the task is not found in either of these locations, the task in the project file is used.

Voir aussiSee Also

Concepts MSBuild MSBuild Concepts
MSBuild MSBuild
Task Writing (Écriture de tâches) Task Writing
Inline Tasks (Tâches inline MSBuild)Inline Tasks