Write Better Code Faster with Roslyn Analyzers
Статический анализатор FxCop существовал издавна, уже более десяти лет.
Сначала эта была отдельная утлита, которую можно было прогнать на скомпилированных сборках.
Потом её интегрировали в Visual Studio под названием Code Analysis.
Недавно FxCop-правила портировали на Roslyn и распространяют как отдельный NuGet-пакет
Microsoft.CodeAnalysis.FxCopAnalyzers.
Соответственно, сейчас это отрабатывает на уровне модели исходного кода, а не скомпилированной сборки, это позволяет реализовать больше инспекций.
Ситуативное подавление правил теперь можно делать не через атрибуты [SuppressMessage] (которые вкомпилируются в сборку и несут небольшой рантайм-оверхед), а на уровне исходного кода через `#pragma warning disable CA****`.
Срабатывание правил происходит по мере редактирование кода, а не на postbuild-этапе; в IDE соответствующие рефакторинги доступны через лампочки.
Roslyn analyzers vs. static code analysis
What's the difference between legacy FxCop and FxCop analyzers?