Share via


Événements de build, page du Concepteur de projets (C#)

Utilisez la page Événements de build du Concepteur de projets pour spécifier des instructions de configuration de build. Vous pouvez également spécifier les conditions dans lesquelles les événements post-build sont exécutés. Pour plus d’informations, consultez Guide pratique pour spécifier des événements de build (C#) et Guide pratique pour spécifier des événements de build (Visual Basic).

Liste des éléments de l'interface utilisateur

Configuration

Ce contrôle n’est pas modifiable dans cette page. Pour obtenir une description de ce contrôle, consultez Générer, page du Concepteur de projets (C#).

Plateforme

Ce contrôle n’est pas modifiable dans cette page. Pour obtenir une description de ce contrôle, consultez Générer, page du Concepteur de projets (C#).

Ligne de commande de l'événement avant génération

Spécifie les commandes à exécuter avant le début de la génération. Pour taper de longues commandes, cliquez sur Modifier pré-build pour afficher la boîte de dialogue Ligne de commande de l’événement pré-build/post-build.

Notes

Les événements pré-build ne fonctionnent pas si le projet est à jour et qu’aucune build n’est déclenchée.

Ligne de commande d'événement après génération

Spécifie les commandes à exécuter à l’issue de la génération. Pour taper de longues commandes, cliquez sur Modifier post-build pour afficher la boîte de dialogue Ligne de commande de l’événement pré-build/post-build.

Notes

Ajoutez une instruction call avant toutes les commandes post-build qui exécutent des fichiers .bat. Par exemple, call C:\MyFile.bat ou call C:\MyFile.bat call C:\MyFile2.bat.

Exécuter l'événement post-build

Spécifie les conditions suivantes pour l’événement post-build à exécuter, comme indiqué dans le tableau ci-dessous.

Option Résultats
Toujours L’événement post-build est exécuté, que la build ait abouti ou échoué.
En cas de build réussie L’événement post-build est exécuté si la build réussit. Ainsi, l’événement est exécuté même pour un projet à jour, à condition que la build soit un succès.
Lorsque la build met à jour la sortie du projet L’événement post-build n’est exécuté que quand le fichier de sortie du compilateur (.exe ou .dll) est différent du fichier de sortie précédent. Ainsi, un événement post-build n’est pas exécuté si un projet est à jour.

Dans le fichier projet

Dans les versions antérieures de Visual Studio, lorsque vous modifiez le paramètre PreBuildEvent ou PostBuildEvent dans l’IDE, Visual Studio ajoute une propriété PreBuildEvent ou PostBuildEvent au fichier projet. Par exemple, si votre paramètre de ligne de commande PreBuildEvent dans l’IDE est le suivant :

"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)"

alors le paramètre de fichier projet est :

<PropertyGroup>
    <PreBuildEvent>"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)" />
</PropertyGroup>

Pour les projets .NET Core, Visual Studio 2019 (et Visual Studio 2017 dans les mises à jour plus récentes) ajoute une cible MSBuild nommée PreBuild ou PostBuild pour les paramètres PreBuildEvent et PostBuildEvent. Ces cibles utilisent les attributs BeforeTargets et AfterTargets, que MSBuild reconnaît. Par exemple, pour l’exemple précédent, Visual Studio génère désormais le code suivant :

<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Command="&quot;$(ProjectDir)PreBuildEvent.bat&quot; &quot;$(ProjectDir)..\&quot; &quot;$(ProjectDir)&quot; &quot;$(TargetDir)&quot;" />
</Target>

Pour un événement post-build, utilisez le nom PostBuild et définissez l’attribut AfterTargets sur PostBuildEvent.

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
   <Exec Command="echo Output written to $(TargetDir)" />
</Target>

Notes

Ces modifications de fichier projet ont été apportées pour prendre en charge les projets de style SDK. Si vous migrez manuellement un fichier projet de l’ancien format vers le format de style SDK, vous devez supprimer les propriétés PreBuildEvent et PostBuildEvent et les remplacer par des cibles PreBuild et PostBuild, comme indiqué dans le code précédent. Pour savoir si votre projet est un projet de style SDK, consultez Vérifier le format du projet.

Voir aussi