2008-09-16 62 views
9

當您使用Visual Studio的代碼分析(FxCop),並且想要抑制消息時,有3個選項。我可以全局抑制FX Cop代碼分析違規嗎?

  1. 抑制代碼中的違規。
  2. 抑制GlobalSupression.cs文件中的衝突。
  3. 禁用項目文件中的違規檢查(通過Project - > Properties - > Code Analysic)。

後來很難檢查時檢查到源代碼管理,很難得到所有禁用違規概述。所以我們想要使用選項2.

選項1和2的問題是,您爲每個違規獲得一條抑制線。 E.g像:

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

我們願意做這樣的事情ING GlobalSuppressions.cs:

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

但是這可能嗎?

回答

9

用單個抑制多個違規SuppressMessage屬性是官方不支持的。顯然,這是設計。

我同意,有時候可能很煩人,但我不能說我不同意這個決定,因爲這個屬性是他們強迫你說「是的,我知道我在做什麼」的方式,這是應根據具體情況進行評估。

1

我想事情已經改變,因爲這個問題已發佈和回答。對於Visual Studio 2010和2012,您可以創建自定義「規則集」文件,您可以在其中指定要抑制的代碼分析規則。

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

所以我所做的就是創建一個自定義的規則集文件,該文件是在我的倉庫源集合的頂層文件夾,我在每個Visual Studio項目中引用此文件。這意味着我有一箇中心位置,可以抑制我無法忍受的代碼分析規則。但是如果我改變了主意,或者決定重新考慮我的糟糕的編碼習慣,我可以簡單地重新啓用規則並查看我得到的代碼分析消息的數量。