StyleCop 程式碼審查(VS外掛)
StyleCop簡介:
StyleCop是程式碼規範檢查工具(Code Review 工具),它不僅僅檢查程式碼格式,而是編碼規範,包括命名和註釋等。StyleCop可以幫助你更容易地進行這項活動。StyleCop現在包含了 200 個左右的最佳實踐規則(best practice rules),這些規則與 Visual Studio 2005 和 Visual Studio 2008 中預設的程式碼格式化規則是一致的。它會根據預定義的C#程式碼格式的最佳實踐,對我們的原始碼進行檢查,並給出不符合編碼風格的錯誤提示。這一點來說與微軟的另一個程式碼檢查工具 FxCop 很相似,但 FxCop 是對 dll (compiled binaries) 進行檢查,所以 FxCop 適用於新專案通過持續整合工具來使用的情況。也就是說 FxCop 是專案級別的,而 StyleCop是程式碼級別的,更適合於程式設計師在程式設計過程中使用。
StyleCop檢查的常用規則:
Documentation Rules 文件規則
Layout Rules 佈局規則
Maintainability Rules 可維護性規則
Naming Rules 命名規則
Ordering Rules 程式碼順序規則
Readability Rules 可讀性規則
Spacing Rules 間距規則
關於規則的解讀:
http://blog.csdn.net/zzh920625/article/details/51637793
StyleCop下載地址:
http://stylecop.codeplex.com/releases/view/621306
StyleCop自定義規則:
1.vs-建立-類庫
2.vs-建立-類
3.vs-建立-xml檔案
4.vs-將專案生成dll檔案
5.vs-將生成的dll檔案放在StyleCop安裝的根目錄下就OK
注意:
1.目標框架(.NET Framework 3.5)可忽略
2.建立的類名與xml檔名相同
3.需要引用using StyleCop;using StyleCop.CSharp;
4.xml檔案,屬性,生成操作,選擇嵌入的資源
類:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using StyleCop;
using StyleCop.CSharp;
namespace 方法名首字母大寫Rules
{
[SourceAnalyzer(typeof(CsParser))]
public class CustomAnalyzer : SourceAnalyzer
{
public override void AnalyzeDocument(CodeDocument document)
{
CsDocument doc = (CsDocument)document;
if (doc.RootElement == null || doc.RootElement.Generated) return;
doc.WalkDocument(CheckClasses);
}
private bool CheckClasses(CsElement element, CsElement parentElement, object context)
{
if (element.ElementType != ElementType.Method) return true;
Method methodElement = (Method)element;
string firstLetter = methodElement.Declaration.Name.Substring(0, 1);
if (firstLetter.ToUpper().Equals(firstLetter) == false)
{
AddViolation(methodElement, methodElement.Location, "MethodBighumpNames", methodElement.FriendlyTypeText);
}
return true;
}
}
}
xml檔案:
<?xml version="1.0" encoding="utf-8" ?>
<SourceAnalyzer Name="方法名首字母大寫 Rules">
<Description>
方法名首字母大寫 Rules.
</Description>
<Rules>
<Rule Name="MethodBighumpNames" CheckId="CR0001">
<Context>方法名必須以大寫字母開始</Context>
<Description>Public method must begin with upper case letter.</Description>
</Rule>
</Rules>
</SourceAnalyzer>
StyleCop警告提示變為錯誤提示:
StyleCop4.7
1.在安裝StyleCop的是候有一個MSBuild integration的選項,它預設是不安裝的,所以安裝的時候記得選擇(*預設路徑C:\Program Files (x86)\StyleCop 4.7)
2.安裝之後:C:\Program Files (x86)\MSBuild\StyleCop\v4.7 的資料夾下會有一個StyleCop.Targets檔案,開啟檔案將裡面的位元組<UsingTask>一行
改為<UsingTask AssemblyFile="StyleCop.dll" TaskName="StyleCopTask"/>儲存
3.配置你的專案,開啟你的專案目錄,其中會有一個.csproj檔案,使用記事本之類的工具開啟,在第一個PropertyGroup 節末端新增
<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
在<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />後面新增<Import Project="$(ProgramFiles)\MSBuild\StyleCop\v4.7\StyleCop.targets" />
4.重新開啟專案
注意:
如果不是StyleCop4.7版本的,預設安裝路徑可能會不同,StyleCop.Targets檔案名及路徑也會不同,所以<Import>節中的路徑要改