Sonar的官网上列出了直接有plugin支持的第三方C#代码分析工具,参见http://docs.codehaus.org/display/SONAR/C%23+Ecosystem+Installation+Guide,下面就来逐一介绍:
1. FxCop : 微软的代码分析工具,以微软内部使用的.NET编码规范为参照,找出源代码中潜在的设计和编写缺陷。FxCop使用一套缺省的检测规则,不过用户也可以使用FxCop SDK添加定制的其他规则。FXCop分析的是编译好的代码,例如*.dll文件。FxCop集成在win7 SDK中,要想安装,必须先下载"Microsoft Windows SDK for windows 7 and .NET Framework 4"的ISO文件,下载链接:http://www.microsoft.com/en-us/download/details.aspx?id=8442#instructions。当然Win7系统会自带这个SDK,就不用下载了。不过,如果只是为了装FxCop,我们没有必要安装ISO文件里的所有内容,只要你安装过免费的解压工具7-zip,就可以打开ISO文件并且只是解压Setup\WinSDKNetFxTools\cab1.cab,然后用7-zip打开cab1.cab并解压文件WinSDK_FxCopSetup.exe_all_enu_1B2F0812_3E8B_426F_95DE_4655AE4DA6C6,并将其重命名为WinSDK_FxCopSetup.exe,这个文件就是FxCop的安装包。
2. StyleCop : 也是微软的代码分析工具,并以微软内部使用的.NET编码规范为参照。和FxCop不同的是,它只进行代码的静态扫描,直接分析源代码。StyleCop是Sonar的C# Plugin内嵌的组件,不用另外安装。
3. Gendarme : 是.Net应用程序和库文件的代码检查工具,它参照的是Cecil库里的标准,里面的内容不是编码规则,而是已知的错误编码方式,坏的编写习惯,影响性能的代码类型等,简单说,Gendarme检查的目的就是让我们不要再反复去犯前辈们已经犯过的错误。Gendarme也是Sonar的C# Plugin内嵌的组件,不用另外安装。
4. PartCover/OpenCover/NCover/JetBrains dotCover : 这几个工具都是计算测试覆盖率的,大家看着哪个顺眼,装一个就行了。我们用的是免费的PartCover。
5. Gallio : 和4的Cover工具一起执行Unit Test或者Integration Test的。