1

J'ai une solution Visual Studio 2015 qui génère 10 projets. Dans chaque projet, il y a un événement pre et post build pour appeler ant pour résoudre et publier le code. Ces événements doivent être déclenchés avant et après la construction de chaque projet, donc le déplacement des événements vers la solution ne fonctionnera pas.Visual Studio 2015 - Exécution d'événements post-construction uniquement à partir de l'interface graphique

Chacun des projets devrait également être capable de construire à partir de la ligne de commande en utilisant ant. Quand il construit à partir de la ligne de commande, les événements sont déclenchés, mais il serait préférable qu'ils ne le soient pas.

Est-ce que quelqu'un sait s'il existe un moyen de déterminer si VS/MSBuild est déclenché à partir de l'interface graphique ou de la ligne de commande?

Répondre

2

Je ne suis pas sûr que vous pouvez le faire dans le PostBuildEvent, mais vous pouvez utiliser la cible AfterBuild et ajouter une condition comme celui-ci:

<Target Name="AfterBuild"> 
    <Exec Command="SOME_COMMAND" Condition=" '$(BuildingInsideVisualStudio)' == 'true' " /> 
    </Target> 

Vous devez modifier le fichier de projet en main pour pour ce faire, car les propriétés du projet ne vous permettent pas de contrôler cela.

1

Si vous utilisez Visual Studio 2017, vous devez ajouter l'instruction conditionnelle en tant qu'attribut à PostBuildEvent. Cela empêchera les événements post-construction de s'exécuter lors de la reconstruction des dépendances. Cela permet d'éviter les événements de post-construction.