2012-03-27 27 views
7

Recientemente comencé a usar Code Analysis en mis proyectos en Visual Studio. Creé un conjunto de reglas personalizado para usar con todos mis proyectos que incluyen dos de los conjuntos de reglas definidos por Microsoft. He estado trabajando para integrar FxCop en el proceso de compilación de CI para fallar construcciones que no pasan todas las reglas. Lo que es realmente extraño para mí es que no puedo usar mi conjunto de reglas para definir las reglas contra las que FxCop escanea el código. ¿Cómo lo hago para que las reglas de Análisis de código de Visual Studio coincidan con las reglas de FxCop?FxCop y reglas de análisis de código

+0

¿Me falta algo por completo o realmente no hay forma de compartir las mismas reglas en FxCop independiente y Code Analysis en Visual Studio? !!!! – Chris

+0

Parece que te estás perdiendo algo. ¿Cómo está intentando ejecutar FxCop desde su compilación CI? –

+0

Lo estoy ejecutando con TeamCity, que ejecuta FxCopCmd.exe. Tengo un archivo de proyecto FxCop que enumera los objetivos y las reglas de listas de FxCop independientes, pero no parece haber una manera fácil de compartir las mismas reglas que Code Analysis está configurado para usar en Visual Studio. Todo funciona, simplemente no parece haber una manera directa de compartir reglas entre el FxCop independiente y el Análisis de código en VS2010. – Chris

Respuesta

8

Ya tiene un archivo de conjunto de reglas que supongo que ha descubierto cómo integrarlo en sus proyectos y utilizarlo a través de Visual Studio.

Se puede usar esta misma archivo de conjunto de reglas en FxCopCmd.exe:

FxCopCmd.exe /out:Violations.xml /ruleset:=Custom.ruleset /file:MyAssembly.dll 

he hecho esto usando Jenkins y funciona muy bien. Ejecute FxCopCmd.exe sin argumentos y debería ver las descripciones de todos los modificadores de línea de comandos disponibles.

+1

Muy raro, tuve muchos problemas para encontrar la documentación para la opción/ruleset, pero funcionó. Afortunadamente, me estaba perdiendo algo :-). – Chris

+1

Puede dar un ejemplo para la sintaxis del archivo de conjunto de reglas. No he tenido mucha suerte en hacer que esto funcione. – mikelong

+0

@mikelong: la sintaxis para usar los archivos del conjunto de reglas se muestra en mi respuesta. ¿Cuál es específicamente tu problema? – Bernard

3

Para nuestra construcción CI tenemos una configuración de compilación especial (además de Debug and Release estándar) que incluye ejecutar análisis de código (tarea MSBuild "RunCodeAnalysis" como recuerdo) y la opción "Tratar advertencia como error". Entonces la compilación falla si tenemos un error FxCop y usa el mismo conjunto de reglas que VS. De esta forma no necesita usar FxCopCmd y puede compartir conjuntos de reglas. Pero debe agregar manualmente esta configuración de compilación a cada proyecto de su solución.

Cuestiones relacionadas