Подтвердить что ты не робот

Вычислить показатели кода для .NET Core Project?

Я играю arround с проектами ASP.NET Core и .NET Core. Для классических проектов С# Visual Studio 2015 имеет возможность вычислять метрики кода. Для .NET Core поддержка отсутствует в инструменте Preview 2.

Кто-нибудь знает обходное решение до тех пор, пока инструмент не станет более полным?

4b9b3361

Ответ 1

NDepend поддерживает .NET core в соответствии с этим

Кроме того, SonarQube может предоставить некоторые из показателей (например, Lines of Code, Cyclomatic Complexity), которые вы ищете. В соответствии с примечаниями к выпуску, версия 2.3+ поддерживает .NET Core

Ответ 3

Я добавил пакет nuget для Microsoft.CodeAnalysis.FxCopAnalyzers в свой проект .Net Core. Это позволило мне щелкнуть правой кнопкой мыши и запустить анализ кода, который прекрасно работает.

Следующей задачей было заставить работать опцию меню "Рассчитать метрики кода".

Calculate Code Metrics

К сожалению, это все еще генерирует ошибку:

Произошла ошибка при расчете метрик кода для целевого файла .dll в проекте. Не удалось определить платформу

Плохая новость заключается в том, что это не будет исправлено в Visual Studio 2017, однако работает в Visual Studio 2019 (в настоящее время Preview 2), как и ожидалось.

Хорошая новость: мне удалось рассчитать показатели с помощью проекта github Roslyn Analyzers. Я клонировал репо (https://github.com/dotnet/roslyn-analyzers.git). А затем построить решение. Один из созданных артефактов - это Metrics.exe по пути <your dev root>\roslyn-analyzers\artifacts\bin\Metrics\Debug\net46\Metrics.exe

Открытие командной строки и запуск Metrics.exe дает полезный текст справки. Не забудьте указать проект или файл sln и /out:<metrics fine name>.xml

Usage: Metrics.exe <arguments>

Help for command-line arguments:

/project:<project-file>  [Short form: /p:<project-file>]
Project(s) to analyze.

/solution:<solution-file>  [Short form: /s:<solution-file>]
Solution(s) to analyze.

/out:<file>  [Short form: /o:<file>]
Metrics results XML output file.

/quiet  [Short form: /q]
Silence all console output other than error reporting.

/help  [Short form: /?]
Display this help message.

Это создает довольно громоздкий XML файл, который затем может быть проанализирован для извлечения метрик, которые вы ищете. Это немного больно, но для меня это сработало, так как все, что я хотел, это сделать одноразовый анализ довольно обширной кодовой базы .Net Core 2.