1

VS2005およびVS2008を使用するために、SharePointリストで現在のcaルールを定義しました。

リストには、除外されたすべてのアセンブリがセミコロンで区切られてリストされている列があります。

カスタムビルドタスクはSharePointリストを読み取り、チームビルドで「-!CA...」を使用してプロジェクトファイルで指定されたルールを除外する責任がありました。

現在、プロジェクトをVS 2010に移行することを計画しており、新しいコード分析ルールセットでいくつかの問題が発生します。

最初のアイデアは

  • SharePointからルールセットファイルを作成する
  • GlobalSupressions.csをソリューションアイテムとして追加し、すべてのプロジェクトのファイルをリンクファイルとして追加します
  • GlobalSupressions.csにターゲット名前空間と除外を使用してSupressMessageエントリを作成します

1つのプロジェクトで小さなソリューションでテストしました。ターゲットの名前空間が機能していないようです。

私はstackoverflowとインターネットを検索しましたが、主な答えは、ターゲットの名前空間での抑制が機能していないということでした。

メインアプリケーションには、250を超えるプロジェクトが含まれています。

私にとって、唯一の有効な方法は、除外されたルールが無効になっているさまざまなプロジェクト用にn個のカスタムルールセットを作成することだと思われます。

アプリケーション全体を調べて、コード内のすべてのルールを再抑制したくありません。

このような状況で、新しいルールセットをどのように使用していますか?

新しいルールセットをシンプルで保守しやすい方法で操作する方法はありますか?シェアポイントリストは、コード分析ルールを定義するための主要な部分です。

編集1

以前のプロジェクトでは、SharePointリストでコード分析ルールセットの定義を管理していました。リストには、すべてのcaルールがリストとして表示されます

  • ca番号
  • 有効化
  • エラーとして処理
  • 除外(「テスト」などのプロジェクト名パーティまたは完全なプロジェクト/アセンブリ名が含まれます)

リストからルールセットが作成されます。

  • アクティブ化+handleAsError=ルールが有効化
  • !アクティブ化=ルールを無効にする
  • アクティブ化+!handleAsError=警告

たとえば、除外列の値が「テスト」の場合、すべてのテストプロジェクトでルールを無効にする必要があります。

4

1 に答える 1

2

VS2010の新しい.rulesetファイルアプローチに移行することを強制するものは何もありません。必要に応じて、ビルドで.fxcopプロジェクトファイルまたはfxcopcmd.exeコマンドラインスイッチを引き続き使用できるため、既存のアプローチはおそらく機能し続けるはずです(おそらく、いくつかのマイナーな調整の後)。

そうは言っても、あなたが望むことを達成するためのもっと簡単な方法があると思います。ただし、あなたの質問は既存のアプローチを適応させることに重点を置いているため、私はあなたの最終目標を完全に理解しているとは言えません。新しいツール機能に適したアプローチを見つけるための支援が必要な場合は、正確に何を達成しようとしているのかについて詳しく教えてください。

于 2011-10-25T12:16:24.607 に答える