Как мне указать набор правил из MSBuild - PullRequest
12 голосов
/ 05 июля 2010

После обновления до VS 2010 MSBUILD / p: RunCodeAnalysis = true не работает должным образом

msbuild solution.sln /p:RunCodeAnalysis=true

Чтобы получить более быструю сборку, мы удалили константу CODE_ANALYSIS для сборки DEBUG. Но это означает, что при выполнении вышеупомянутой команды msbuild она по умолчанию применяется ко всем правилам вместо использования набора правил, который мы указали на вкладке «Анализ кода» на странице свойств проекта.

Итак, теперь мне нужно встроить режим выпуска для запуска анализа кода (для которого определена константа CODE_ANALYSIS):

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

Это, однако, означает, что мы получаем релизную версию на наших машинах разработчика. И это имеет некоторые побочные эффекты в нашей установке.

Вопрос: Как мне указать рулсет из командной строки. Я надеялся что-то вроде:

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

1 Ответ

25 голосов
/ 05 июля 2010

Вам нужно будет использовать свойство CodeAnalysisRuleSet.

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

Вот список предопределенных правил:

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