Tâches MSBuild

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Une plateforme de génération doit être en mesure d’exécuter n’importe quel nombre d’actions pendant le processus de génération. MSBuild utilise tâches pour effectuer ces actions. Une tâche est une unité de code exécutable utilisée par MSBuild pour effectuer des opérations de génération atomiques.

Le MSBuild format de fichier XML ne peut pas exécuter entièrement build operations sur sa propre, c’est le cas logique de tâche doivent être implémentées en dehors du fichier projet.

La logique d’exécution d’une tâche est implémentée comme une classe .NET qui implémente le ITask interface, qui est définie dans le Microsoft.Build.Framework espace de noms.

La classe de tâche définit également les paramètres d’entrée et de sortie disponibles pour la tâche dans le fichier projet. Toutes les propriétés définissables publiques non statiques 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 sur le tâche élément.

Vous pouvez écrire votre propre tâche en créant une classe managée qui implémente le ITask interface. Pour plus d’informations, consultez écriture de tâches.

Avant d’exécuter une tâche dans votre fichier projet, vous devez d’abord mapper le type dans l’assembly qui implémente la tâche sur le nom de la tâche avec le UsingTask élément. Cela vous permet de MSBuild savoir où rechercher la logique d’exécution de votre tâche lorsqu’il la trouve dans votre fichier projet.

Pour exécuter une tâche dans un MSBuild fichier de projet, créez un élément avec le nom de la tâche comme enfant d’un Target élément. Si une tâche accepte des paramètres, ceux-ci sont passés comme attributs de l’élément.

MSBuild élément propriétés et les listes peuvent être utilisées comme paramètres. Par exemple, le code suivant appelle la MakeDir de tâches et définit la valeur de la Directories propriété de la MakeDir objet égal à la valeur de la BuildDir propriété déclarée dans l’exemple précédent.

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

Tâches peuvent également retourner des informations dans le fichier projet, qui peut être stocké dans des éléments ou des propriétés pour une utilisation ultérieure. Par exemple, le code suivant appelle le Copy de tâches et stocke les informations de la CopiedFiles sortie de propriété dans le SuccessfullyCopiedFiles liste d’éléments.

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

MSBuild est fourni avec de nombreuses tâches telles que copie, qui copie des fichiers, MakeDir, qui crée des répertoires et Csc, qui compile Visual C# fichiers de code source. Pour obtenir une liste complète des tâches disponibles et des informations sur l’utilisation, consultez la page Task Reference.

MSBuild recherche de tâches dans plusieurs emplacements. Le premier emplacement est dans des fichiers portant l’extension. OverrideTasks stockée dans les répertoires .NET Framework. Tâches dans ces fichiers remplacent toutes les autres tâches avec les mêmes noms, y compris les tâches dans le fichier projet. Le deuxième emplacement est dans des fichiers portant l’extension. Tâches dans les répertoires .NET Framework. Si la tâche est introuvable dans un de ces emplacements, la tâche dans le fichier projet est utilisée.

Concepts MSBuild
MSBuild
Écriture de tâches
Tâches inline

Afficher: