2008-08-25 5 views

答えて

13

最初に[SuppressMessage]属性を自由に使用します。少なくとも最初は。属性を使用してカウントを0にすると、新しいチェックインでFxCop違反が導入されないというルールを適用します。

Visual Studio 2008にはコード分析機能が用意されているため、すべてのビルドでコード解析を実行し、警告をエラーとして扱うことができます。それは少し遅くなるかもしれないので、私はCruiseControl.NETのような継続的な統合サーバーを設定し、すべてのチェックインでコード分析を実行することをお勧めします。

すべてのチェックインに新しい違反が導入されていない場合は、使用したSuppressMessageAttributesを削除することを目的として、FxCop違反のクラス全体に一度に取り組まなければなりません。

あなたが本当に保持したいものを追跡する方法は、あなたが本当に抑制したいものに常に正当化値を追加することです。

3

通過スタイルでコードを書き直してください!

真剣に言えば、古いコードベースには何百ものエラーがありますが、それが初心者/インターンプログラマーがいる理由です。 FxCop違反を修正することは、コードベースの概要を理解し、適合する.NETコードを作成する方法を学ぶのに最適です。

だから、弾丸を噛んで、たくさんのカフェインを飲み、カップルの日にちょうどそれを通り抜けてください!

0

NDepend looks likeそれはあなたが何をしているのかは分かりませんが、CruiseControl.Net自動ビルドに統合できるかどうかわかりませんし、コードが要件を満たさない場合はビルドに失敗します。私は何をしたいのですか?)

他のアイデアはありますか?

-1

FxCopに代わる方法は、ツールNDependを使用することです。このツールを使用すると、C#LINQクエリのコード規則CQLinqと呼ぶ)を書くことができます。 免責事項:私はこのツールの開発者の一人です

200 code rules以上がデフォルトで提案されています。既存のルールをカスタマイズする、または独自のルールを作成することは、のよく知られた C#LINQ構文のおかげで簡単です。

低偽陽性の数を維持するために、CQLinqはセットnotmycodeで始まる特殊なコードクエリを通じてJustMyCodeが何であるかを定義するために独自の機能を提供しています。この機能の詳細については、hereを参照してください。ここでは例えば2つのnotmycodeデフォルトのクエリです:CQLinqであなたもルールを集中することができ、低偽陽性の数を保つために

コードに結果だけを追加しましたまたはコードがリファクタされている場合は、defined baseline in the pastです。 、次のルールを参照して、ベースラインから追加またはリファクタリング余りに複雑な方法を検出すること:

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

、NDependのコード規則とgenerated HTML+javascript reportに、live in Visual Studio、ビルドプロセス時に確認することができることに気づきます。

関連する問題