VS2005およびVS2008を使用するために、SharePointリストで現在のcaルールを定義しました。
リストには、除外されたすべてのアセンブリがセミコロンで区切られてリストされている列があります。
カスタムビルドタスクはSharePointリストを読み取り、チームビルドで「-!CA...」を使用してプロジェクトファイルで指定されたルールを除外する責任がありました。
現在、プロジェクトをVS 2010に移行することを計画しており、新しいコード分析ルールセットでいくつかの問題が発生します。
最初のアイデアは
- SharePointからルールセットファイルを作成する
- GlobalSupressions.csをソリューションアイテムとして追加し、すべてのプロジェクトのファイルをリンクファイルとして追加します
- GlobalSupressions.csにターゲット名前空間と除外を使用してSupressMessageエントリを作成します
1つのプロジェクトで小さなソリューションでテストしました。ターゲットの名前空間が機能していないようです。
私はstackoverflowとインターネットを検索しましたが、主な答えは、ターゲットの名前空間での抑制が機能していないということでした。
メインアプリケーションには、250を超えるプロジェクトが含まれています。
私にとって、唯一の有効な方法は、除外されたルールが無効になっているさまざまなプロジェクト用にn個のカスタムルールセットを作成することだと思われます。
アプリケーション全体を調べて、コード内のすべてのルールを再抑制したくありません。
このような状況で、新しいルールセットをどのように使用していますか?
新しいルールセットをシンプルで保守しやすい方法で操作する方法はありますか?シェアポイントリストは、コード分析ルールを定義するための主要な部分です。
編集1
以前のプロジェクトでは、SharePointリストでコード分析ルールセットの定義を管理していました。リストには、すべてのcaルールがリストとして表示されます
- ca番号
- 有効化
- エラーとして処理
- 除外(「テスト」などのプロジェクト名パーティまたは完全なプロジェクト/アセンブリ名が含まれます)
リストからルールセットが作成されます。
- アクティブ化+handleAsError=ルールが有効化
- !アクティブ化=ルールを無効にする
- アクティブ化+!handleAsError=警告
たとえば、除外列の値が「テスト」の場合、すべてのテストプロジェクトでルールを無効にする必要があります。