Partage via


Comment : ajouter une étape de génération personnalisée à des projets MSBuild

Une étape de génération personnalisée est une étape définie par l’utilisateur dans une build. Une étape de génération personnalisée se comporte comme n’importe quelle autre étape de l’outil de commande, telle que l’étape standard de compilation ou d’outil de liaison.

Spécifiez une étape de génération personnalisée dans le fichier projet (.vcxproj). L’étape peut spécifier une ligne de commande à exécuter, tous les fichiers d’entrée ou de sortie supplémentaires et un message à afficher. Si MSBuild détermine que vos fichiers de sortie sont obsolètes en ce qui concerne vos fichiers d’entrée, il affiche le message et exécute la commande.

Pour spécifier l’emplacement de l’étape de génération personnalisée dans la séquence de cibles de build, utilisez l’un ou les CustomBuildAfterTargetsCustomBuildBeforeTargets deux éléments XML dans le fichier projet. Par exemple, vous pouvez spécifier que l’étape de génération personnalisée s’exécute après la cible de l’outil de liaison et avant la cible de l’outil manifeste. L’ensemble réel de cibles disponibles dépend de votre build particulière.

Spécifiez l’élément CustomBuildBeforeTargets pour exécuter l’étape de génération personnalisée avant l’exécution d’une cible particulière, l’élément CustomBuildAfterTargets à exécuter après l’exécution d’une cible particulière, ou les deux éléments pour exécuter l’étape entre deux cibles adjacentes. Si aucun élément n’est spécifié, votre outil de génération personnalisé s’exécute à son emplacement par défaut, qui se trouve après la cible link .

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. Par conséquent, spécifiez ces cibles une seule fois dans votre fichier projet.

Pour définir ce qui est exécuté par l’étape de génération personnalisée

  1. Ajoutez un groupe de propriétés au fichier projet. Dans ce groupe de propriétés, spécifiez la commande, ses entrées et sorties et un message, comme illustré dans l’exemple suivant. Cet exemple crée un fichier .cab à partir du fichier main.cpp que vous avez créé dans la procédure pas à pas : utilisation de MSBuild pour créer un projet C++.

    <ItemDefinitionGroup>
      <CustomBuildStep>
        <Command>makecab.exe $(ProjectDir)main.cpp $(TargetName).cab</Command>
        <Outputs>$(TargetName).cab</Outputs>
        <Inputs>$(ProjectDir)main.cpp</Inputs>
      </CustomBuildStep>
    </ItemDefinitionGroup>
    

Pour définir l’emplacement dans la build, l’étape de génération personnalisée s’exécutera

  1. Ajoutez le groupe de propriétés suivant au fichier projet. Vous pouvez spécifier les deux cibles, ou vous pouvez en omettre une si vous souhaitez simplement que l’étape personnalisée s’exécute avant ou après une cible particulière. Cet exemple indique à MSBuild d’effectuer l’étape personnalisée après l’étape de compilation, mais avant l’étape du lien.

    <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 build dans des projets MSBuild
Guide pratique pour ajouter des outils de génération personnalisés à des projets MSBuild