2009-07-14 2 views
0

Motivation: J'ai fxcop intégré dans le processus de construction, ce qui fait exécuter fxcopcmd.exe chaque fois que la cible a changé ou tant qu'il y a des avertissements de l'exécution précédente de fxcop.Est-il possible à partir du fichier csproj de savoir si devenv ou msbuild est utilisé pour l'exécuter?

Mais quand on travaille en studio, devenv.exe décide souvent de compiler le projet en arrière-plan pour quelque raison que ce soit. Par exemple, lorsque j'ajoute un nouveau projet à la solution, je remarque que fxcopcmd.exe s'exécute, ce qui signifie qu'une version d'arrière-plan a démarré. Il y a aussi d'autres moments aussi. Donc, je souhaite supprimer fxcop quand il est construit avec devenv. Notre serveur CI construit en utilisant msbuild, donc pas de problème.

BTW, s'il y a un moyen de désactiver les builds d'arrière-plan, cela pourrait être génial.

Répondre

1

Il y a une propriété BuildingInsideVisualStudio qui vous dira cela.

Par exemple comparer le résultat lors de l'utilisation msbuild.exe et devenv.exe avec un .csproj avec l'objectif AfterBuild suivant défini

<Target Name="AfterBuild"> 
    <Message Text="BuildingInsideVisualStudio: $(BuildingInsideVisualStudio)" Importance="high"/> 
</Target> 

Sayed Ibrahim Hashimi

Mon livre: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

0

La seule chose que je peux penser est soit

  1. créer un type de construction différent (comme debug_and_rules, release_and_rules, etc.). Je pense que ms build pourrait lire ceci. Faites en sorte que votre serveur CI appelle fxcop exe distinct de la construction du projet.
  2. C'est ce que je faisais avant que fxcop soit intégré dans VS.
  3. msbuild a défini un paramètre ou un indicateur de compilateur que ms build pourrait lire. Je ne suis pas sûr que cela fonctionnerait.

Le compilateur d'arrière-plan a été ajouté dans VS 2008 à C#, et pour autant que je sache, n'est pas configurable. VS 2010 est censé être ultra configurable alors peut-être qui va changer

Edit: formaté ma liste un peu mieux

Questions connexes