チュートリアル : マネージ コードの分析によるコード障害の検出
このチュートリアルでは、コード分析ツールを使ってマネージ プロジェクトを分析し、コード障害を検出する方法について説明します。
このチュートリアルでは、コード分析を通じて、.NET マネージ コード アセンブリを分析し、これらのアセンブリが Microsoft .NET Framework デザイン ガイドラインに準拠しているかどうかを確認するプロセスを、順をおって説明します。
このチュートリアルでは、次のことを行います。
- コード障害の警告を分析および修正する。
必須コンポーネント
- Visual Studio Premium.
クラス ライブラリの作成
クラス ライブラリを作成するには |
|
プロジェクトの分析
マネージ プロジェクトのコード障害を分析するには
ソリューション エクスプローラーで CodeAnalysisManagedDemo プロジェクトを選択します。
[プロジェクト] メニューの [プロパティ] をクリックします。
CodeAnalysisManagedDemo のプロパティ ページが表示されます。
[コード分析] をクリックします。
有効化ビルドのコード分析 (CODE_ANALYSIS の定数を定義します。)がオンになっていることを確認します。
[この規則セットを実行] ボックスの一覧の [Microsoft のすべての規則] をクリックします。
[ファイル] メニューの [選択されたファイルを上書き保存] をクリックし、ManagedDemo のプロパティ ページを閉じます。
[ビルド] メニューの [ManagedDemo のビルド] をクリックします。
CodeAnalysisManagedDemo プロジェクト ビルドの警告は コード分析 と 出力 のペインに表示されます。
次に コード分析 のペインが 分析 のメニューで、表示されない場合は、 ウィンドウ と **コード分析を選択します。**を選択します。
コード分析の問題の修正
コード分析で指摘された規則違反を修正するには
[表示] メニューの [エラー一覧] をクリックします。
開発者が設定しているプロファイルによっては、[表示] メニューの [その他のウィンドウ] をポイントしてから、[エラー一覧] をクリックしなければならない場合もあります。
ソリューション エクスプローラーで、[すべてのファイルを表示] をクリックします。
次に、プロパティ ノードを展開し、AssemblyInfo.cs ファイルを開きます。
次の表に従って警告を修正します。
警告 |
警告を修正するには |
---|---|
CA1014: アセンブリに CLSCompliantAttribute を設定します: Microsoft.Design: 'demo' は、CLSCompliantAttribute でマークされ、その値は true でなければなりません。 |
|
CA1032: 標準例外コンストラクターを実装します: Microsoft.Design: 次のコンストラクターをこのクラスに追加します: public demo(String) |
|
CA1032: 標準例外コンストラクターを実装します: Microsoft.Design: 次のコンストラクターをこのクラスに追加します: public demo(String, Exception) |
|
CA1032: 標準例外コンストラクターを実装します: Microsoft.Design: 次のコンストラクターをこのクラスに追加します: protected demo(SerializationInfo, StreamingContext) |
|
CA1032: 標準例外コンストラクターを実装します: Microsoft.Design: 次のコンストラクターをこのクラスに追加します: public demo() |
|
CA1709: 識別子では、大文字と小文字が正しく区別されなければなりません: Microsoft.Naming: 名前空間の名前 'testCode' の大文字と小文字の指定を 'TestCode' に訂正してください。 |
|
CA1709: 識別子では、大文字と小文字が正しく区別されなければなりません: Microsoft.Naming: 型の名前 'demo' の大文字と小文字の指定を 'Demo' に訂正してください。 |
|
CA1709: 識別子では、大文字と小文字が正しく区別されなければなりません: Microsoft.Naming: メンバーの名前 'item' の大文字と小文字の指定を 'Item' に修正してください。 |
|
CA1710: 識別子は、正しいサフィックスを含んでいなければなりません: Microsoft.Naming: 'testCode.demo' の名前が 'Exception' で終わるように変更します。 |
|
CA2210: アセンブリには有効な厳密な名前が必要です: 'ManagedDemo' を厳密な名前キーで署名します。 |
|
CA2237: ISerializable 型を SerializableAttribute に設定します: Microsoft.Usage: [Serializable] 属性を型 'demo' に追加します。この型が ISerializable を実装するためです。 |
|
変更を完了したら、 Class1.cs ファイルは次のようになります:
//CodeAnalysisManagedDemo
//Class1.cs
using System;
using System.Runtime.Serialization;
namespace TestCode
{
[Serializable()]
public class DemoException : Exception
{
public DemoException () : base() { }
public DemoException(String s) : base(s) { }
public DemoException(String s, Exception e) : base(s, e) { }
protected DemoException(SerializationInfo info, StreamingContext context) : base(info, context) { }
public static void Initialize(int size) { }
protected static readonly int _item;
public static int Item { get { return _item; } }
}
}
コード分析で生成された警告の除外
コード障害の警告を除外するには
残りの警告の場合、次を実行します:
コード分析のペインで、警告を選択します。
アクションを選択し、を メッセージの非表示を選択し、 プロジェクトの抑制ファイルを選択します。
詳細については、「方法: メニュー項目を使用して警告を抑制する」を参照してください。
プロジェクトを再ビルドします。
警告やエラーを出さずにプロジェクトがビルドされます。