Запускать анализаторы Roslyn из программы - PullRequest
0 голосов
/ 25 марта 2019

Предпосылки требования:

Мы создаем библиотеки API (для .Net, Java, C / C ++ и Python) для наших клиентов, на которых они создают свои приложения.Когда мы обновляем наши библиотеки API, наши клиенты сталкиваются с проблемой поиска изменений, необходимых в их источнике, чтобы иметь возможность использовать новые библиотеки API.Следовательно, мы планируем создать инструмент отчетности, который может работать на их источнике и точно сказать им, какие изменения им нужно внести в свой код.

Задача

ДляТеперь, сосредоточившись только на .Net, самый простой способ, о котором я мог подумать, - это использовать встроенные анализаторы Roslyn.Идея состоит в том, чтобы изменить ссылки проекта на новые библиотеки api, а затем запустить анализаторы для решения.

Проблема, из-за которой я застрял в том, что в командной строке MSBuild нет возможности просто запускать анализаторы (пропуская сборку).Затем я попытался вызвать анализаторы с помощью кода (который также является предпочтительным), для этого я добавил пакет nuget Microsoft.CodeAnalysis.Analyzers, Microsoft.CodeAnalysis.CSharp.Но я не смог получить никакой информации о том, как использовать анализаторы с помощью этих пакетов.

Вопросы

  1. Можно ли запустить Rosyln-Analyzers из кода?
  2. Если да, то как?(пример кода высоко ценится)

1 Ответ

1 голос
/ 25 марта 2019

Я думаю, вы хотите одну из двух вещей:

  • Напишите анализаторы, которые могут автоматически исправлять код для использования нового API.
  • Напишите автономный инструмент анализа, который создает отчет.

Анализаторы, которые вы можете поставить с новым пакетом nuget для своей новой версии, а затем пользователи могут просто просмотреть все предупреждения анализатора и исправить их. Вам не нужно запускать их, они будут запущены, когда пользователь начнет работать над решением.

Автономный инструмент, который пользователи могут запускать для создания отчета. Если вам нужен отчет, то вы хотите сделать это, а не писать анализатор

Я нашел эту серию сообщений в блоге полезную для изучения анализаторов

...