以下示例使用 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 会将项目中的所有文件视为其作用域内的文件。更多关于作用域的信息,请参阅上方的 Analyzer 范围。
要测试您的分析器是否正常工作,请遵循以下示例。如果您正确安装了分析器,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();
}
}
保存文件时,Unity 会重新编译脚本并对脚本的代码运行适用的分析器。如果 ErrorProne.NET Analyzer 安装正确,它会在控制台窗口中针对上述代码发出以下警告:
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.