Roslyn ベースのアナライザーThe Roslyn based Analyzers

Roslyn ベースのアナライザーでは、.NET Compiler SDK (Roslyn の API) を使用して、プロジェクトのソース コードを分析し、問題の検出と修正の提案を行います。Roslyn-based analyzers use the .NET Compiler SDK (Roslyn APIs) to analyze your project's source code to find issues and suggest corrections. 検出する問題のクラスは、バグを起こしやすい慣習から API の互換性に関するセキュリティの問題まで、アナライザーによってさまざまです。Different analyzers look for different classes of issues, ranging from practices that are likely to cause bugs to security concerns to API compatibility.

Roslyn ベースのアナライザーは対話型であり、ビルド中にも動作します。Roslyn-based analyzers work both interactively and during builds. Visual Studio またはコマンド ラインからビルドする際に、アナライザーはさまざまなガイダンスを提供します。The analyzer provides different guidance when in Visual Studio or in command-line builds.

Visual Studio でコードを編集する場合、コードを変更するとアナライザーが実行され、問題を含むコードの作成後すぐに考えられる問題がキャッチされます。While you edit code in Visual Studio, the analyzers run as you make changes, catching possible issues as soon as you create code that trigger concerns. すべての問題は波線で強調表示されます。Any issues are highlighted with squiggles under any issue. Visual Studio に表示される電球をクリックすると、その問題に対して考えられる修正方法がアナライザーによって提案されます。Visual Studio displays a light bulb, and when you click on it the analyzer will suggest possible fixes for that issue. Visual Studio またはコマンド ラインでプロジェクトをビルドすると、すべてのソース コードが分析され、潜在的な問題の全リストがアナライザーによって示されます。When you build the project, either in Visual Studio or from the command line, all the source code is analyzed and the analyzer provides a full list of potential issues. 次の図に例を示します。The following figure shows one example.

フレームワーク アナライザーによって報告される問題

Roslyn ベースのアナライザーでは、エラー、警告、または問題の重大度に基づく情報として、潜在的な問題が報告されます。Roslyn-based analyzers report potential issues as errors, warnings, or information based on the severity of the issue.

Roslyn ベースのアナライザーは、プロジェクト内に NuGet パッケージとしてインストールします。You install Roslyn-based analyzers as NuGet packages in your project. 構成されたアナライザーと各アナライザーに対するすべての設定は復元され、そのプロジェクト用の任意の開発者のマシンで実行されます。The configured analyzers and any settings for each analyzer are restored and run on any developer's machine for that project.


Roslyn ベースのアナライザーのユーザー エクスペリエンスは、FxCop の旧バージョンのようなコード分析ライブラリや、セキュリティ分析ツールとは異なるものです。The user experience for Roslyn-based analyzers is different than that of the Code Analysis libraries like the older versions of FxCop and the security analysis tools. 明示的に Roslyn ベースのアナライザーを実行する必要はありません。You don't need to explicitly run the Roslyn-based analyzers. Visual Studio の [分析] メニューで [コード分析の実行] メニュー項目を使用する必要はありません。There's no need to use the "Run Code Analysis" menu items on the "Analyze" menu in Visual Studio. Roslyn ベースのアナライザーは、ユーザーの作業と同期して実行されます。Roslyn-based analyzers run asynchronously as you work.

特定のアナライザーについての詳細More information on specific analyzers

このセクションでは、次のアナライザーについて説明します。The following analyzers are covered in this section:

  • API アナライザー: このアナライザーでは、コードの互換性の潜在的リスクや、非推奨の API の使用が調べられます。API Analyzer: This analyzer examines your code for potential compatibility risks or uses of deprecated APIs.
  • フレームワーク アナライザー: このアナライザーでは、コードが .NET Framework アプリケーションのガイドラインに従っているかどうかが調べられます。Framework Analyzer: This analyzer examines your code to ensure it follows the guidelines for .NET Framework applications. これらの規則には、セキュリティに基づく推奨事項がいくつか含まれます。These rules include several security-based recommendations.
  • .NET Portability Analyzer: このアナライザーでは、コードを調べて、アプリケーションと他の .NET の実装やプロファイル (.NET Core、.NET Standard、UWP、Xamarin for iOS、Android、Mac など) との互換性を確保するために必要な作業量を確認します。.NET Portability Analyzer: This analyzer examines your code to see how much work is required to make your application compatible with other .NET implementations and profiles, including .NET Core, .NET Standard, UWP, and Xamarin for iOS, Android, and Mac.