9

Visual Studioのコード分析(FxCop)を使用していて、メッセージを抑制したい場合は、3つのオプションがあります。

  1. コードの違反を抑制します。
  2. GlobalSupression.csファイルの違反を抑制します。
  3. プロジェクトファイルの違反チェックを無効にします([プロジェクト]->[プロパティ]->[コード分析]を使用)。

後者は、ソース管理にチェックインするときに確認するのが非常に難しく、無効になっているすべての違反の概要を把握するのが困難です。したがって、オプション2を使用します。

オプション1と2の問題は、違反ごとに1つの抑制線を取得することです。例:

[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Company.Project.Namespace2")]
[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Company.Project.Namespace1")]

GlobalSuppressions.csで次のようなことをしたいと思います。

[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes")]

しかし、これは可能ですか?

4

2 に答える 2

9

単一のSuppressMessage属性で複数の違反を抑制することは、公式にはサポートされていません。どうやら、これは仕様によるものです。

私は同意します、それは時々迷惑になるかもしれませんが、属性は「はい、私は自分がしていることを知っています」と言うように強制する方法であるため、決定に同意しないとは言えません。ケースバイケースです。

于 2008-09-16T15:07:44.863 に答える
1

この質問が投稿されて回答されてから、状況は変わったと思います。Visual Studio 2010 および 2012 では、抑制したいコード分析ルールを指定できるカスタム "ルール セット" ファイルを作成できます。

http://msdn.microsoft.com/en-us/library/dd380660.aspx

そのため、リポジトリ ソース コレクションの最上位フォルダーにカスタム ルール セット ファイルを 1 つ作成し、各 Visual Studio プロジェクトでこのファイルを参照しています。これは、単純に我慢できないコード分析ルールを抑圧できる中心的な場所が 1 つあることを意味します。しかし、考えが変わったり、悪いコーディングの習慣を再考する必要があると判断した場合は、非常に簡単にルールを再度有効にして、コード分析メッセージがいくつ表示されるかを確認できます。

于 2013-09-21T09:16:17.133 に答える