software que herramientas estatico codigo analisis .net visual-studio code-analysis

.net - que - herramientas de analisis de codigo estatico



¿Puedo suprimir violaciones de análisis de código de FX Cop en todo el mundo? (2)

Cuando utiliza el código analysic de Visual Studio (FxCop) y desea suprimir un mensaje, hay 3 opciones.

  1. Suprime una violación en el código.
  2. Suprime una infracción en un archivo GlobalSupression.cs.
  3. Desactive la verificación de violación en el archivo del proyecto (a través de Proyecto -> Propiedades -> Código Analítico).

Lo último es muy difícil de revisar cuando se registra en el Control de código fuente, y es difícil obtener una descripción general de todas las infracciones desactivadas. Entonces nos gustaría usar la opción 2.

El problema con la opción 1 y 2 es que obtienes una línea de supresión por cada violación. Ej .:

[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Company.Project.Namespace2")] [assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Company.Project.Namespace1")]

Nos encantaría hacer algo como esto ing GlobalSuppressions.cs:

[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes")]

¿Pero es esto posible?


Suprimir múltiples violaciones con un único atributo SuppressMessage no es oficialmente compatible. Aparentemente, esto es por diseño.

Estoy de acuerdo, puede ser molesto a veces, pero no puedo decir que estoy en desacuerdo con la decisión, ya que el atributo es su manera de forzarte a decir, "Sí, sé lo que estoy haciendo", que debe evaluarse en caso por caso.


Creo que las cosas han cambiado desde que se publicó y respondió esta pregunta. Para Visual Studio 2010 y 2012 puede crear un archivo de "conjunto de reglas" personalizado donde puede especificar qué reglas de análisis de código desea suprimir.

http://msdn.microsoft.com/en-us/library/dd380660.aspx

Entonces, lo que he hecho es crear un único archivo de conjunto de reglas personalizado que se encuentra en la carpeta de nivel superior de mi colección de fuentes de repositorio, y hago referencia a este archivo en cada proyecto de Visual Studio. Esto significa que tengo un lugar central donde puedo suprimir las reglas de análisis de código que simplemente no soporto. Pero si alguna vez cambio de opinión o decido que debería reconsiderar mis malos hábitos de codificación, puedo simplemente volver a habilitar la regla y ver cuántos mensajes de análisis de código obtengo.