Domanda

Quando si utilizza Visual Studio del codice analysic (FxCop), e per eliminare un messaggio ci sono 3 opzioni.

  1. La soppressione di una violazione del codice.
  2. Sopprimere una violazione in un GlobalSupression.cs file.
  3. Disattivare la violazione di controllare il file di progetto (via Progetto -> Proprietà -> Codice Analysic).

Il secondo è molto difficile per la revisione momento del check-in per il Controllo del codice Sorgente, ed è difficile ottenere una panoramica di tutti i portatori di violazioni.Così vorremmo utilizzare l'opzione 2.

Il problema con l'opzione 1 e 2 è che si ottiene una soppressione della linea per ogni violazione.E. g come:

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

Ci piacerebbe fare qualcosa di simile ing GlobalSuppressions.cs:

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

Ma è possibile questo?

È stato utile?

Soluzione

Repressione di violazioni multiple con un unico SuppressMessage attributo è ufficialmente non è supportato.A quanto pare, questo è il design.

Sono d'accordo, potrebbe essere fastidioso a volte, ma non posso dire che sono in disaccordo con la decisione, visto che l'attributo è il loro modo per costringere a dire, "Sì, so cosa sto facendo", che devono essere valutate caso per caso.

Altri suggerimenti

Penso che le cose sono cambiate dal momento che questa domanda è stato pubblicato e risposto.Per Visual Studio 2010 e il 2012, è possibile creare un custom "set di regole" del file, dove è possibile specificare il codice di regole di analisi che si desidera eliminare.

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

Così quello che ho fatto è creare un unico set di regole personalizzate file nella cartella di livello superiore del mio repository raccolta di origine, e io fare riferimento a questo file in ogni progetto di Visual Studio.Questo significa che ho una posizione centrale in cui posso sopprimere l'analisi del codice di regole che semplicemente non può stare in piedi.Ma se dovessi cambiare la mia mente, o decidere devo riconsiderare la mia cattiva codifica abitudini, posso semplicemente riattivare la regola e vedere come molti di analisi del codice, i messaggi che posso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top