2008-12-18 114 views
8

FxCops對我而言是新鮮事物,但我一直都想了解新事物。 從我讀過的內容來看,FxCops已經包含在VS2008中。我想這是「代碼分析」功能。每當我嘗試運行它時,它似乎開始重建並以「完成重建」狀態結束。
我檢查了輸出窗口,那裏有一堆警告。但是,如果我沒有錯,那麼應該有更多的GUI用於我的輸出窗口中的文本牆,對吧?
我錯過了一個應該彈出的窗口嗎?我可以在任何地方打開它嗎?還是有什麼我失蹤?VS2008中的代碼分析/ FxCop

回答

3

是的,代碼分析是FxCop的友好名稱。然而,我不知道除錯誤/警告列表外應該出現的友好窗口,前綴爲CA

在項目屬性屏幕上有一個代碼分析選項卡,您可以將警告視爲錯誤來執行您關心的規則。

+0

我明白了,我沒有注意到「警告」標籤,因爲它通常只會散佈「缺少的CSS類」。這是一個非功能性的警告(VS沒有找到你的CSS文件的一半,並不是所有的類都是CSS) – 2008-12-18 09:03:07

+0

我也覺得這很煩人,但是,如果你有純粹用於標記HTML的CSS類,而不是爲它設計樣式,爲什麼不添加一個空的CSS規則(在一段被解釋爲解釋規則爲空的原因的部分) – belugabob 2009-03-23 11:11:54

1

到FxCop的另一種方法是使用該工具NDepend的,讓寫Code Rules over C# LINQ Queries (namely CQLinq)。 NDepend集成在VS 2012,2010和2008年。免責聲明:我是該工具的開發人員之一

默認情況下建議大於200 code rules。定製現有規則或創建您自己的規則非常簡單,這要歸功於着名的 C#LINQ語法。

NDepend代碼規則可以驗證live in Visual Studio並在構建過程時間在generated HTML+javascript report

您似乎關注假陽性的數量。爲了保持低誤報率,CQLinq提供了獨特的功能來定義什麼是JustMyCode通過特殊代碼查詢前綴notmycode。有關此功能的更多解釋可以在here找到。這裏有例如兩個notmycode默認查詢:

爲了使假陽性的數量很低,CQLinq你也可以專注規則導致只在代碼中添加或重構代碼,因爲定義爲baseline in the past。請參見下面的規則,檢測方法,因爲基線過於複雜,增加或重構:

warnif count > 0 
from m in Methods 
where m.CyclomaticComplexity > 20 && 
     m.WasAdded() || m.CodeWasChanged() 
select new { m, m.CyclomaticComplexity } 
+0

聽起來很有趣。可能會向我的老闆 – 2008-12-19 12:31:30

2

只是讓每個人都知道,因爲我花了很長的時間來算出這個....代碼分析/ FxCop僅包含在VS 2008的Team System和Team Suite版本中,而不是專業版。

相關問題