В чем разница между различными анализаторами Microsoft.CodeQuality. *? - PullRequest
1 голос
/ 28 сентября 2019

Я немного озадачен различными анализаторами кода для .NET Core.

Если вы создаете веб-проект .NET Core по умолчанию, вы получаете Microsoft.CodeAnalysis.Analyzers.

Кроме того, в NuGet есть Microsoft.CodeQuality.Analyzers (обратите внимание на небольшую разницу в названии).После установки я вижу, что он содержит гораздо больше правил.

И, наконец, есть также Microsoft.CodeAnalysis.FxCopAnalyzers, который, по-видимому, содержит Microsoft.CodeQuality.Analyzers.

Так что же конкретно представляет собой связь между Microsoft.CodeAnalysis.Analyzers, Microsoft.CodeQuality.Analyzers и Microsoft.CodeAnalysis.FxCopAnalyzers?Что должен иметь мой проект?

PS После создания нового проекта я ищу в NuGet пакет Microsoft.CodeAnalysis.Analyzers (который уже существует в моем проекте).Он находит его и заявляет, что мой проект имеет v1.1 и что ему нужно обновить его до v2.9.4.Однако, согласно NuGet, версия v1.1 была выпущена в 2015 году. Это не имеет смысла, поскольку я использую VS2019, и было много выпусков этого анализатора в период с 2015 по 2019 год.

Однако, когда я обновляюpackage to 2.9.4 - анализатор имеет те же 3 правила, что и v1.1.Так что именно я обновляю?

1 Ответ

1 голос
/ 28 сентября 2019

Это описано здесь: https://github.com/dotnet/roslyn-analyzers/blob/master/README.md

В итоге:

  • Microsoft.CodeQuality.Analyzers - это пакет, используемый для запуска анализаторов.

    Этот пакет содержит общие правила улучшения качества кода, которые не относятся к использованию какого-либо конкретного API

  • Microsoft.CodeAnalysis.Analyzers предназначен для создателей анализа кода.Так что для создания анализатора.
  • Microsoft.CodeAnalysis.FxCopAnalyzers: это основной пакет анализатора для этого репо, который содержит все перенесенные правила анализа кода FxCop (CAxxxx).
...