2010-07-05 6 views
5

Après mise à niveau vers VS 2010 MSBUILD/p: RunCodeAnalysis = true ne fonctionne pas comme prévuComment puis-je spécifier un ensemble de règles de MSBuild

msbuild solution.sln /p:RunCodeAnalysis=true 

Pour construit plus vite nous avons supprimé la CODE_ANALYSIS constante pour la construction DEBUG. Mais cela signifie que lors de l'exécution de la commande msbuild ci-dessus, il se conforme à toutes les règles, au lieu d'utiliser l'ensemble de règles que nous avons spécifié dans l'onglet "Analyse de code" sur la page de propriétés du projet.

Alors maintenant, je besoin de construire en mode de libération pour exécuter du code analasis (qui a la constante CODE_ANALYSIS définie):

msbuild solution.sln /p:RunCodeAnalysis=true /p:Configuration=release 

Cela signifie cependant que nous obtenons une version de version sur nos machines de dev. Et cela a des effets secondaires dans notre configuration. Question: Comment est-ce que je spécifie le rulset à partir d'une ligne de commande. J'espérais quelque chose comme:

msbuild solution.sln /p:RunCodeAnalysis=true /p:foobar=rules.ruleset 

Répondre

18

Vous devrez utiliser la propriété CodeAnalysisRuleSet.

msbuild solution.sln /p:RunCodeAnalysis=true;CodeAnalysisRuleSet=GlobalizationRules.ruleset 

Voici la liste prédéfinie ruleset:

  • AllRules.ruleset
  • BasicCorrectnessRules.ruleset
  • BasicDesignGuidelineRules.ruleset
  • ExtendedCorrectnessRules.ruleset
  • ExtendedDesignGuidelineRules.ruleset
  • GlobalizationRules.ruleset
  • MinimumRecommendedRules.ruleset
  • SecurityRules.ruleset
+1

Le ruleset peut aussi être un lien vers un fichier. Par exemple: '/ p: RunCodeAnalysis = true; CodeAnalysisRuleSet =" C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Outils d'équipe \ Outils d'analyse statique \ Jeux de règles \ ExtendedDesignGuidelineRules.ruleset "'. –

Questions connexes