Visual Studio 静的コード分析による UWP アプリの Visual Basic および C# のコード品質の分析Analyze Visual Basic and C# code quality in UWP apps using Visual Studio static code analysis

Windows と Windows Phone に適用Applies to Windows and Windows Phone

Visual Studio Express のコード分析ツールは、コードを調べてプログラミング上の一般的な問題や違反がないことを確認します。The code analysis tool in Visual Studio Express examines your code for a set of common defects and violations of good programming practice. コード分析の警告はコンパイラのエラーや警告とは異なります。コード分析ツールは、有効であってもコードの作成者やコードを利用する他のユーザーにとって問題になる可能性がある特定のコード パターンを検索します。Code analysis warnings differ from compiler errors and warnings because the code analysis tool searches for specific code patterns that are valid but could still create issues for you or other people who use your code. また、コード分析では、テストでは検出できないコードの欠陥を見つけることができます。Code analysis can also find defects in your code that are difficult to discover through testing. 開発プロセス中に定期的にコード分析ツールを実行することで、高品質なアプリを完成させることができます。Running the code analysis tool at regular intervals during your development process can enhance the quality of your completed app.

注意

Visual Studio Ultimate、Visual Studio Premium、および Visual Studio Professional では、コード分析の全機能を使用できます。In Visual Studio Ultimate, Visual Studio Premium, and Visual Studio Professional, you can use the full functionality of code analysis. MSDN ライブラリの「コード分析ツールを使用したアプリケーション品質の分析」を参照してください。See Analyzing Application Quality by Using Code Analysis Tools in the MSDN Library.

このトピックの内容In this topic

以下について説明します。You can learn about:

コード分析の実行Running code analysis

コード分析警告の分析と解決Analyzing and resolving code analysis warnings

コード分析警告の抑制Suppressing code analysis warnings

コード分析結果の検索とフィルター処理Searching and filtering code analysis results

Visual Basic および C# コード分析警告Visual Basic and C# code analysis warnings

コード分析の実行Running code analysis

Visual Studio ソリューションでコード分析を実行するには:To run code analysis on your Visual Studio solution:

  • [ビルド] メニューの [ソリューションでコード分析を実行] をクリックします。On the Build menu, choose Run Code Analysis on Solution.

    プロジェクトをビルドするたびに自動的にコード分析を実行するには:To automatically run code analysis each time you build a project:

  1. ソリューション エクスプローラーでプロジェクト名を右クリックし、[プロパティ] を選択します。Right-click the project name in Solution Explorer and then choose Properties.

  2. プロジェクトのプロパティ ページで、[コード分析] をクリックして、[ビルドに対するコード分析の有効化 (定数 CODEANALYSIS を定義)] を選択します。In the project property page, choose Code Analysis and then choose Enable Code Analysis on Build (defines CODEANALYSIS constant).

    ソリューションがコンパイルされ、コード分析が実行されます。The solution is compiled and code analysis runs. 結果は、[コード分析] ウィンドウに表示されます。Results appear in the Code Analysis window.

    [コード分析] ウィンドウCode Analysis window

コード分析警告の分析と解決Analyzing and resolving code analysis warnings

特定の警告を分析するには、[コード分析] ウィンドウで警告のタイトルをクリックします。To analyze a specific warning, click the title of the warning in the Code Analysis window. 警告が展開され、問題に関する詳細情報が表示されます。The warning expands to display detailed information about the issue.

展開されたコード分析の警告Expanded code analysis warning

警告を展開すると、警告の原因となったコード行が Visual Studio のコード エディターで強調表示されます。When you expand a warning, the line of code that caused the warning is highlighted in the Visual Studio code editor.

コード分析テキストの強調表示Code analysis text highlighting

何が問題かを理解したら、コードを修正してそれを解決できます。After you understand the issue, you can resolve it in your code. コード分析を再度実行して、[コード分析] ウィンドウに警告が表示されないこと、および修正によって新しい警告が発生しないことを確認します。Then rerun code analysis to make sure that the warning no longer appears in the Code Analysis window, and that your fix has not raised new warnings.

ヒント

コード分析は、[コード分析] ウィンドウから再実行できます。You can rerun code analysis from the Code Analysis window. [分析] をクリックし、分析の範囲を選択します。Click the Analyze button and choose the scope of the analysis. ソリューション全体または選択したプロジェクトの分析を再実行できます。You can rerun analysis on the entire solution or on a selected project.

コード分析警告の抑制Suppressing code analysis warnings

コード分析警告の修正を行わないことを決定する場合があります。There are times when you might decide not to fix a code analysis warning. コードを実装したときの警告の発生確率と、警告を解決するためのコード変更の量を比較して、解決しないことを選択できます。You might decide that resolving the warning requires too much recoding in relation to the probability that the issue will arise in any real-world implementation of your code. または、警告で使用された分析が特定のコンテキストでは不適切であると判断できます。Or you might believe that the analysis that is used in the warning is inappropriate for the particular context. 個々の警告を抑制して、[コード分析] ウィンドウに表示されないように設定できます。You can suppress individual warnings so that they no longer appear in the Code Analysis window.

警告を抑制するには:To suppress a warning:

  1. 詳細情報が表示されていない場合は、警告のタイトルをクリックして展開します。If the detailed information is not displayed, click the title of the warning to expand it.

  2. 警告の下部にある [アクション] リンクをクリックします。Choose the Actions link at the bottom of the warning.

  3. [メッセージの非表示] をポイントし、[ソース内] または [抑制ファイル内] をクリックします。Point to Suppress Message and then choose either In Source or In Suppression File.

    • [ソース内] をクリックすると、警告を生成したメソッドの上のソース ファイルに SuppressMessage 属性が挿入されます。In Source inserts a SuppressMessage attribute in the source file above the method that generated the warning. これにより、抑制が検出されやすくなります。This makes the suppression more discoverable.

    • [抑制ファイル内] では、プロジェクトの GlobalSuppressions.cs ファイルに SuppressMessage 属性を追加します。In Suppression File adds a SuppressMessage attribute to the GlobalSuppressions.cs file of the project. これにより、抑制を簡単に管理できるようになります。This can make the management of suppressions easier. GlobalSuppression.cs に追加された SuppressMessage 属性は、警告を生成したメソッドもターゲットとすることに注意してください。Note that the SuppressMessage attribute added to GlobalSuppression.cs also targets the method that generated the warning. 警告がグローバルに表示なしになることはありません。It does not suppress the warning globally.

      ソース ファイルで警告を抑制するか、抑制ファイルで警告を抑制するかは、コーディング スタイルとニーズによって決まります。Your decision whether to suppress the warning in the source file or in the suppression file depends on your coding style and needs.

警告メッセージの長い一覧の検索と、複数のプロジェクトから成るソリューションの警告をフィルター処理できます。You can search long lists of warning messages and you can filter warnings in multi-project solutions.

[コード分析] ウィンドウの検索とフィルター処理Search and filter the code analysis window

Visual Studio Express 2012 for Windows 8Visual Studio Express 2012 for Windows 8 では、コード分析のすべての警告に、警告の重大度レベルが示されています。In Visual Studio Express 2012 for Windows 8Visual Studio Express 2012 for Windows 8, all code analysis warnings have the severity level of Warning.

Visual Basic および C# コード分析警告Visual Basic and C# code analysis warnings

コード分析では次の警告が発生します。Code analysis raises the following warnings:

CA1001: 破棄可能なフィールドを所有する型は、破棄可能でなければなりませんCA1001: Types that own disposable fields should be disposable

CA1821: 空のファイナライザーを削除しますCA1821: Remove empty finalizers

CA2213: 破棄可能なフィールドは破棄されなければなりませんCA2213: Disposable fields should be disposed

CA2229: シリアル化コンストラクターを実装しますCA2229: Implement serialization constructors

CA2231: ValueType.Equals のオーバーライドで、演算子 equals をオーバーロードしますCA2231: Overload operator equals on overriding ValueType.Equals