代碼警察是一個代碼分析工具,它依照微軟.NET框架的設計規範對託管代碼assembly(可稱為程式集,assembly實際上指的就是.net中的.exe或者.dll檔案(不包括netmodule檔案)
基本介紹
- 中文名:代碼警察
- 外文名:FxCop
FxCop是一個代碼分析工具,它依照微軟.NET框架的設計規範對託管代碼assembly(可稱為程式集,assembly實際上指的就是.net中的.exe或者.dll檔案(不包括netmodule檔案),這種檔案中包含四種信息:assembly的清單(包括引用外部的assembly、netmodule與資源檔案及包含在同一檔案中的assembly);類型描述信息,包括版本信息與類的描述等;MSIL微軟中間語言;資源(圖示等))進行檢查。它使用基於規則的引擎,來檢查出你代碼中不合規範的部分;你也可以定製自己的規則加入到這個引擎。這個工具微軟免費提供。最新版需要.NET 2.0支持;此外,也有一個較老的針對.NET1.1的版本。
大多數代碼分析工具掃描你的原始碼,但是FxCop直接對你編譯好的代碼處理。.NET的每個assembly都有其metadata(可稱為元數據,metadata是關於一個assembly中各元素的類型信息庫,它本身也存放在這個assembly中),它對assembly以及assembly內用到的所有類型進行描述。FxCop會使用這個metadata以獲知代碼內部的運行狀況。另外,它也對代碼編譯時生成的MSIL(Microsoft Intermediate Language,微軟中間語言)進行檢查。
通過對metadata和MSIL檢查的結合,FxCop可以得出大量信息,以此獲得對代碼執行時所作所為的理解。它把你的代碼和各條規則逐一比較檢查,在每一個實例中,當找到不符合規則的代碼時就生成一條訊息。