#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 и работы с компиляциями.