2011-01-18 8 views
10

FxCopのグローバル抑制を使用して、古いコードで見つかった規則違反を抑制します。古いコードとは、私たちがコード解析を有効にする前に何年も書かれたコードを意味します。新しいコードで違反を修正します。古いコードの違反を一度に修正することはできませんので、抑制を使用します。未使用または古くなったFxCopメッセージ抑制を識別する方法はありますか?

時間の経過とともに、私たちのグローバル抑制ファイルは膨らんだ状態になりました。古いメソッドでシグネチャが変更された場合、以前の抑制はもはやコードと一致しないため、無効になります。古い違反を無視するために新しい抑制を作成しましたが、しばしば古いSuppressMessage属性が残っていました。

コードと一致しないこれらのSupressMessage宣言を特定する方法を知っている人はいますか?その問題については、誰もが抑止する違反がないため無効なSuppressMessage属性を特定する方法を知っていますか?

未使用の抑制を識別するコンパイラまたはFxCopCmdの警告メッセージまたはログメッセージが存在する可能性があります。もしそうでなければ、それを行うスクリプトやVSエクステンションを知っている人はいませんか?

ありがとうございました。

+0

これらのすべての抑制を最終的に削除する予定です。あまりにも多すぎるとコードが乱雑になることがわかります。 – Bernard

+0

@Bernard - グローバル抑制はあなたのクラスファイルの中にはないので、あなたがそれらを探すまでは表示されません。痛みは、あなたが削除または変更したいものを見つけようとするときです。 – Pedro

+0

@ペドロ:あなたは正しいです。しかし、メソッドレベルで警告を抑制することもできますが、これはお勧めしません。 – Bernard

答えて

2

スタンドアローンのFxCop UIアプリケーションを使用することができます。 [最後に実行されたと見なされる]列を[除外するソース]の[結果]タブに追加します。分析後、この列には、分析実行中に対応する違反が見つからなかったインソース抑制のfalse値が表示されます。結果の信頼性を最大限に高めるには、Visual Studioから分析を実行するときに使用する分析に同じルール・セットを使用していることを確認する必要があります。

ところで、「古くなった」抑制が見つかったときにビルドを中断したい場合は、https://connect.microsoft.com/visualstudio/feedback/details/277253/add-mechanism-for-detecting-unnecessary-suppressmessageattribute-instancesに投票することを検討してください。

+0

ありがとう、私は今それを試してみるつもりです。 –

+1

リンクが壊れているように見えましたが、私はそれを見つけることができませんでした。投稿を更新できますか? – julealgon