この例では ErrorProne.NET.CoreAnalyzers ライブラリを使用して、NuGet からコードアナライザーまたはソースジェネレータをインストールする方法を説明します。
errorprone.net.coreanalyzers<version-number>\analyzers\dotnet\cs に移動します。必要なファイルは、このフォルダーにある ErrorProne.NET.Core.dll、ErrorProne.Net.CoreAnalyzers.dll、RuntimeContracts.dll という名前のファイルです。RoslynAnalyzer と入力し、Return を押します。このラベルは例と正確に一致する必要があり、大文字と小文字が区別されます。作成した最初のアナライザーのラベルは、Asset Labels サブメニューの使用可能なラベルのリストに表示されます。メニューでラベルの名前をクリックして、他のアナライザーに割り当てることができます。Unity は RoslynAnalyzer ラベルを認識し、このラベルを持つアセットを Roslyn Analyzer またはソースジェネレータとして扱います。アナライザーにラベルが割り当てられると、Unity はアナライザーのスコープ内でスクリプトを再コンパイルし、アナライザーでのルールに従ってスクリプトのコードを分析します。アナライザーと同じアセンブリ定義内にあるスクリプトは、そのアナライザーのスコープに含まれます。Assets フォルダーのルートレベルにあるアナライザーの場合、Unity はプロジェクトのすべてのファイルがスコープに含まれると見なします。スコープの詳細は、アナライザースコープ を参照してください。
アナライザーが正しく動作することをテストするには、以下の例に従います。アナライザーが正しくインストールされていると、ErrorProne.NET アナライザーは例のコードを分析するときに警告を発します。
RethrowError.cs という名前の新しいスクリプトファイルを作成します。以下のコードをこのスクリプトにコピーし、ファイルを保存します。
using System;
using UnityEngine;
public class RethrowError : MonoBehaviour
{
void Update()
{
try
{
DoSomethingInteresting();
}
catch (Exception e)
{
Debug.Log(e.Message);
throw e;
}
}
private void DoSomethingInteresting()
{
throw new System.NotImplementedException();
}
}
ファイルを保存すると、スクリプトが再コンパイルされ、スクリプトのコードで適切なアナライザーが実行されます。ErrorProne.NET アナライザーが正しくインストールされると、Console ウィンドウに上記のコードに関する以下の警告が表示されます。
Assets\RethrowError.cs(14,23): warning EPC12: Suspicious exception handling: only e.Message is observed in exception block.
Assets\RethrowError.cs(15,19): warning ERP021: Incorrect exception propagation. Use throw; instead.