Установка и использование существующего анализатора или генератора источников
В этом примере используется библиотека ErrorProne.NET.CoreAnalyzers для демонстрации установки анализаторов кода или генераторов исходных текстов из NuGet:
- Загрузите библиотеку как файл .zip с помощью кнопки Загрузить пакет.
- Извлеките содержимое файла .zip.
- В извлеченной папке найдите файлы .dll, содержащие анализаторы. В этом примере перейдите к
errorprone.net.coreanalyzers<version-number>\analyzers\dotnet\cs. Требуемые файлы должны находиться в этой папке, именуемойErrorProne.NET.Core.dll,ErrorProne.Net.CoreAnalyzers.dllиRuntimeContracts.dll. - Переместите эти файлы в папку Assets или любую папку, вложенную в папку Assets, в вашем проекте Unity. Для этого либо перейдите в Ассеты > Импортировать новый ассет и выберите .dll для каждого из трех файлов, либо скопируйте их в папку
Assetsвашего проекта с помощью браузера файлов вашего устройства. - Нажмите на файл .dll внутри Asset Browser внутри Unity, чтобы открыть окно Плагин Inspector.
- В окне Плагина Inspector:
- В заголовке Выберите платформы для плагина отключите Любая платформа.
- В соответствии Включить платформы заголовок, отключить Редактор и Автономный.
- Под заголовком Asset Labels в окне Плагина Inspector нажмите на синюю метку, чтобы открыть подменю Asset Labels.
- Создайте и назначьте новую метку под названием
RoslynAnalyzer. Чтобы сделать это, введитеRoslynAnalyzerв окно ввода текста в подменю Метки активов и нажмите Return. Эта метка должна точно соответствовать примеру и учитывать регистр букв. После создания метки для первого анализатора, она появится в списке доступных меток в подменю Метки активов. Вы можете нажать на название метки в меню, чтобы назначить ее другим анализаторам.
Unity распознает метку RoslynAnalyzer и рассматривает ассеты с этой меткой как анализаторы Roslyn или генераторы исходного кода. Когда вы назначаете метку анализатору, 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();
}
}
При сохранении файла, Unity перекомпилирует скрипт и запускает любые применимые анализаторы на коде скрипта. Когда анализатор ErrorProne.NET установлен правильно, он вызывает следующие предупреждения в окне Консоли об вышеуказанном коде:
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.