2010-07-05 13 views
5

Después de actualizar a VS 2010 MSBUILD/p: RunCodeAnalysis = true no funciona como se esperaba¿Cómo se especifica un conjunto de reglas de MSBuild

msbuild solution.sln /p:RunCodeAnalysis=true 

Para llegar más rápido construye hemos eliminado el CODE_ANALYSIS constante para la versión de depuración. Pero eso significa que al ejecutar el comando msbuild anterior, se convierte en un defecto para todas las reglas, en lugar de usar el conjunto de reglas que especificamos en la pestaña "Análisis de código" en la página de propiedades del proyecto.

Así que ahora tengo que construir en modo de lanzamiento para ejecutar código analasis (que tiene la constante CODE_ANALYSIS definido):

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

Sin embargo, esto significa que tenemos una versión de lanzamiento en nuestras máquinas dev. Y esto tiene algunos efectos secundarios en nuestra configuración.

Pregunta: ¿Cómo especifico el rulset desde una línea de comando? Esperaba algo como:

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

Respuesta

18

Tendrás que utilizar la propiedad CodeAnalysisRuleSet.

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

Aquí está la lista de conjunto de reglas predefinidas:

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

El conjunto de reglas puede ser también un enlace a un archivo. Por ejemplo: '/ p: RunCodeAnalysis = true; CodeAnalysisRuleSet =" C: \ Archivos de programa (x86) \ Microsoft Visual Studio 14.0 \ Herramientas del equipo \ Herramientas de análisis estático \ Sets de reglas \ ExtendedDesignGuidelineRules.ruleset "'. –

Cuestiones relacionadas