É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=""$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)"" />
</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.