Dot-Net

我可以在全球範圍內禁止 FX Cop 程式碼分析違規行為嗎?

  • August 11, 2017

當您使用 Visual Studio 的程式碼分析 (FxCop) 並想要禁止顯示消息時,有 3 個選項。

  1. 禁止程式碼中的違規。
  2. 抑制 GlobalSupression.cs 文件中的違規。
  3. 禁用項目文件中的違規檢查(通過項目 -> 屬性 -> 程式碼分析)。

後者在簽入原始碼控制時很難查看,並且很難獲得所有禁用違規的概覽。所以我們想使用選項2。

選項 1 和 2 的問題是每次違規都會獲得一條抑制線。例如:

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

我們很樂意在 GlobalSuppressions.cs 中做這樣的事情:

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

但這可能嗎?

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

我同意,有時可能很煩人,但我不能說我不同意這個決定,因為這個屬性是他們強迫你說“是的,我知道我在做什麼”的方式,應該在根據具體情況。

我認為自從發布並回答了這個問題以來,情況已經發生了變化。對於 Visual Studio 2010 和 2012,您可以創建自定義“規則集”文件,您可以在其中指定要禁止的程式碼分析規則。

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

所以我所做的是創建一個自定義規則集文件,該文件位於我的儲存庫源集合的頂級文件夾中,並且我在每個 Visual Studio 項目中引用該文件。這意味著我有一個中心位置可以抑制我根本無法忍受的程式碼分析規則。但是,如果我改變主意,或者決定重新考慮我的不良編碼習慣,我可以非常簡單地重新啟用規則並查看我收到了多少程式碼分析消息。

引用自:https://stackoverflow.com/questions/72832