Je construis divers projets en utilisant les < MSBuild projets = » ... le balisage. Je suis alors exécutais des outils de ligne de commande après que le projet est construit.MSBuild conditionnel Exec?
Par exemple,
<Target Name="Name">
<MSBuild Projects="" />
<Exec Command="" />
</Target>
Je remarque que le projet est généré uniquement comme requis et obtient la sortie suivante lorsque le script de génération est exécuté: "Ignorer la cible" CoreCompile "car tous les fichiers de sortie sont à jour" .C'est super mais comment puis-je faire mes commandes < Exec ... utiliser la même condition afin de ne les utiliser que lorsque cela est nécessaire?
Mise à jour: J'ai implémenté la suggestion de gregmac mais elle exécute toujours la commande malgré tout. Voilà ce que j'ai maintenant:
<Target Name="Name">
<MSBuild Projects="">
<Output TaskParameter="TargetOutputs" ItemName="AssembliesBuiltByChildProjects" />
</MSBuild>
<Exec Command="" Condition="'@(AssembliesBuiltByChildProjects)'!=''" />
Toute autre aide est très appréciée. C'est un peu un point de friction pour moi.
Merci pour tous les conseils.
Alan
Salut, Merci pour votre suggestion et désolé pour le retard dans la réponse. Je me contente d'essayer ça maintenant. J'ai essayé mais il exécute toujours la commande indépendamment du fait que le projet ait été construit ou non. Voir ma question mise à jour. Des idées? –
Après avoir examiné cela plus loin, je peux voir que AssembliesBuiltByChildProjects contient le nom de mon assembly. Cependant, il n'y a pas de différence dans cette valeur, que le projet soit construit ou non ... C'est un peu frustrant car il est si proche. Quelqu'un peut-il nous éclairer? –