FxCop 是一種靜態程式碼分析工具,主要是用來分析採用 .NET 技術開發的組件(Assembly)品質,其中分析的規則也多達上百條(FxCop 1.36 預設有 197 種規則),並依照不同的領域分門別類,大致有以下類別:
- 設計警告 ( Design Rules )
支援 .NET Framework 設計方針所指定之正確程式庫設計的警告。 - 全球化警告 ( Globalization )
支援世界性程式庫和應用程式的警告。 - 互通性警告 ( Interoperability )
支援與 COM 用戶端互動的警告。 - 維護性警告 ( Maintainability )
維護性警告支援程式庫和應用程式維護。 - 命名警告 ( Naming )
支援遵守 .NET Framework 設計方針之命名慣例的警告。 - 效能警告 ( Performance )
支援高效能程式庫和應用程式的警告。 - 可攜性警告 ( Portability )
可攜性警告會支援各種不同平台的可攜性。 - 可靠性警告 ( Reliability )
支援程式庫和應用程式可靠性的警告,如正確的記憶體和執行緒用法。 - 安全性警告 ( Security )
支援更安全之程式庫和應用程式的警告。 - 用法警告 ( Usage )
支援適當使用 .NET Framework 的警告。
[ 以上資訊摘自 MSDN Managed 程式碼的程式碼分析警告 單元 ]
這些檢查規則(Rules)都是微軟在開發 .NET Class Library 時提出的各種程式設計的規範與警告,讓工程師們能夠寫出好用且易於維護的程式碼,FxCop 原意是要提供給開發類別庫(Class Library)的開發人員用的,只不過若一般的 .Net 應用程式也能夠遵照這些 Rules 開發的話,想必也能夠獲益良多,我覺得任何 .NET 工程師應該都要試試 FxCop 工具。
若要使用 FxCop 有幾個基本的步驟,如下:
1. 新增專案

2. 新增檢查目標,並選擇一個至多個 .NET 組件
3. 選擇要檢查的規則:在 FxCop 中雖然 Rules 這麼多,但如果全部都套用的話也其實不太實際,你可以選擇部分檢查規則就好,只要切換到 Rules 頁籤後,勾選你想要檢查的類別或特定項目即可。

4. 按下 Analyze 按鈕進行程式碼檢查
5. 最後就是查看報表了,你可以在右側的檢查項目上選取 Properties 查看警告的詳細

而在 Message Details 視窗裡有許多資訊可以查看,如下圖 Issues 頁籤可看到 Resolution (解決方式)
Rule Details 提供了更詳細的說明
Message 頁籤提供該條警告偵測到的方法(Method)
Rules Support 頁籤提供了該條規則所提供支援訊息,其中 URL 的連結會連到 MSDN 看到該規則詳細的說明,而且是中文的喔!
而最後的 Notes 可以讓 Code Review 的人員填入自己的筆記備查
其他的部分就讓各位自己去發掘啦!
目前最新的 FxCop 是在 2008/8/13 發佈的 1.36 正式版,除此之外 FxCop 工具也早已整合進 Visual Studio Team System 產品中,在這次的 Visual Studio 2008 SP1 更新中也包括 FxCop 1.36 的更新。
備註:如果你之前已經安裝了FxCop 1.36 Beta 2,在安裝FxCop 1.36之前需要先解除安裝 Beta 2 才能安裝正式版。
相關連結