Share via


Procédure : Ajouter des outils de build personnalisés à des projets MSBuild

Un outil de génération personnalisé est un outil en ligne de commande défini par l’utilisateur associé à un fichier particulier.

Pour un fichier particulier, spécifiez dans le fichier projet (.vcxproj) la ligne de commande à exécuter, les autres fichiers d’entrée ou de sortie et un message à afficher. Si MSBuild détermine que vos fichiers de sortie sont obsolètes par rapport à vos fichiers d’entrée, il affiche le message et exécute l’outil en ligne de commande.

Spécifier des outils de génération personnalisés et des étapes de génération personnalisées

Pour spécifier quand l’outil de génération personnalisé s’exécute, utilisez un ou les deux CustomBuildBeforeTargetsCustomBuildAfterTargets éléments XML dans le fichier projet. Par exemple, vous pouvez spécifier que votre outil de génération personnalisé s’exécute après le compilateur MIDL et avant le compilateur C/C++. Spécifiez l’élément CustomBuildBeforeTargets à exécuter avant l’exécution d’une cible particulière. Utilisez l’élément pour exécuter l’outil CustomBuildAfterTargets après l’exécution d’une cible particulière. Utilisez les deux éléments pour exécuter l’outil entre l’exécution de deux cibles. Si aucun élément n’est spécifié, votre outil de génération personnalisé s’exécute à son emplacement par défaut, qui est avant la cible MIDL .

Les étapes de génération personnalisées et les outils de génération personnalisés partagent les informations spécifiées dans les CustomBuildBeforeTargets éléments XML et CustomBuildAfterTargets les éléments XML. Spécifiez ces cibles une fois dans votre fichier projet.

Pour ajouter un outil de génération personnalisé

  1. Ajoutez un groupe d’éléments au fichier projet et ajoutez un élément pour chaque fichier d’entrée. Spécifiez la commande et ses entrées, sorties et un message en tant que métadonnées d’élément, comme indiqué ici. Cet exemple suppose qu’un fichier « faq.txt » existe dans le même répertoire que votre projet. L’étape de génération personnalisée la copie dans le répertoire de sortie.

    <ItemGroup>
      <CustomBuild Include="faq.txt">
        <Message>Copying readme...</Message>
        <Command>copy %(Identity) $(OutDir)%(Identity)</Command>
        <Outputs>$(OutDir)%(Identity)</Outputs>
      </CustomBuild>
    </ItemGroup>
    

Pour définir l’emplacement dans la build, les outils de génération personnalisés s’exécutent

  1. Ajoutez le groupe de propriétés suivant au fichier projet. Vous devez spécifier au moins l’une des cibles. Vous pouvez omettre l’autre si vous n’êtes intéressé que par l’exécution de votre étape de génération avant (ou après) une cible particulière. Cet exemple effectue l’étape personnalisée après la compilation, mais avant la liaison.

    <PropertyGroup>
      <CustomBuildAfterTargets>ClCompile</CustomBuildAfterTargets>
      <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets>
    </PropertyGroup>
    

Voir aussi

Procédure pas à pas : utilisation de MSBuild pour créer un projet C++
Guide pratique pour utiliser des événements de génération dans des projets MSBuild
Guide pratique pour ajouter une étape de génération personnalisée aux projets MSBuild
Macros courantes pour les commandes et propriétés MSBuild
Métadonnées d’éléments connus MSBuild