В чем разница между Microsoft.CodeAnalysis.FxCopAnalyzers и Microsoft.CodeAnalysis?

#c# #code-analysis #roslyn-code-analysis

#c# #анализ кода #рослин-анализ кода

Вопрос:

Я хочу установить анализ кода в один из моих проектов на C #, и кажется, что люди добавляют анализ кода в проекты .NET Core с помощью пакета NuGet Microsoft.CodeAnalysis.FxCopAnalyzers .

Однако я также нашел другие пакеты NuGet из Microsoft.CodeAnalysis пространства имен, а именно Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , и т.д. Microsoft.CodeAnalysis.Features

Какова цель этих других пакетов по сравнению с FxCopAnalyers пакетом? Описания пакетов не очень понятны, поэтому я не знаю, каковы их варианты использования.

РЕДАКТИРОВАТЬ 2021: из текущей документации: до Visual Studio 2019 16.8 и .NET 5.0 анализаторы кода поставлялись в Microsoft.CodeAnalysis.FxCopAnalyzers виде пакета NuGet. Начиная с Visual Studio 2019 16.8 и .NET 5.0, эти анализаторы включены в пакет .NET SDK. Они также доступны в Microsoft.CodeAnalysis.NetAnalyzers виде пакета NuGet. Пожалуйста, рассмотрите возможность перехода с анализаторов FxCop на анализаторы .NET.

Ответ №1:

Майкрософт.CodeAnalysis.FxCopAnalyzers — это просто набор анализаторов, которые анализируют ваш код так же, как некоторые другие анализаторы, IDE и т. Д. Этот пакет анализирует ваш код на предмет производительности, проблем с дизайном и так далее, и тому подобное.

Однако Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.VisualBasic, Microsoft.CodeAnalysis.Workspaces и другие подобные пакеты позволяют программно анализировать входной код, писать пользовательские статические анализаторы кода и наборы правил, исследовать семантические и синтаксические модели кода и использовать некоторую полезную логику для расширения возможностей Visual Studio, и так далее, и тому подобное.

Комментарии:

1. Microsoft.CodeAnalysis Включает ли их все?

2. @wltheng, нет, это не так. В настоящее время этот пакет включает в себя только основные пакеты для синтаксического / семантического анализа и анализа рабочей области: Microsoft.CodeAnalysis.Compilers; Microsoft.CodeAnalysis.CSharp; Microsoft.CodeAnalysis.VisualBasic; Microsoft.CodeAnalysis.CSharp.Workspaces; Microsoft.CodeAnalysis.VisualBasic.Workspaces;

3. У вас должен быть Microsoft. CodeAnalysis. CSharp для анализа источников csharp и работы с компиляциями.