2008-09-16 11 views
9

Cuando utiliza el código analysic de Visual Studio (FxCop) y desea suprimir un mensaje, hay 3 opciones.¿Puedo suprimir las infracciones de análisis de código de FX Cop en todo el mundo?

  1. Suprime una violación en el código.
  2. Suprimir 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 Source Control, y es difícil obtener una visión general de todas las infracciones desactivadas. Por lo tanto, nos gustaría utilizar la opción 2.

El problema con la opción 1 y 2 es que se obtiene una línea de supresión por cada infracción. Por ejemplo como:

[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?

Respuesta

9

Suprimir infracciones múltiples con un solo El 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 obligarlo a decir: "Sí, sé lo que estoy haciendo", que debe evaluarse caso por caso.

1

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

Así que lo que he hecho es crear un archivo de conjunto de reglas personalizadas única que está en la carpeta de nivel superior de mi colección de origen repositorio, y que hacen 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.

Cuestiones relacionadas