web-dev-qa-db-fra.com

Calculer les métriques de code pour les projets .NET Core?

Je joue avec des projets ASP.NET Core et .NET Core. Pour les projets C # classiques, Visual Studio 2015 dispose de la fonctionnalité permettant de calculer les métriques de code. Pour .NET Core, la prise en charge est manquante dans l’Outil Preview 2. 

Est-ce que quelqu'un connaît une solution de contournement jusqu'à ce que l'outillage soit plus complet?

20
Ralf Bönning

NDepend prend en charge le noyau .NET selon ce

En outre, SonarQube peut fournir certaines des métriques (lignes de code, complexité cyclomatique, par exemple) que vous recherchez. Selon les notes de publication , la version 2.3+ prend en charge .NET Core. 

2
nambi

Il est maintenant disponible dans VS 2019 Preview 1, selon ce qui suit:

https://developercommunity.visualstudio.com/idea/351625/netcore-code-metrics.html?childToView=404758

1
Squirrelkiller

J'ai ajouté le package nuget Microsoft.CodeAnalysis.FxCopAnalyzers à mon projet .Net Core. Cela m'a permis de faire un clic droit et d'exécuter l'analyse de code, ce qui fonctionne très bien. 

Le défi suivant consistait à faire fonctionner l’option de menu Calculer la métrique du code

 Calculate Code Metrics

Malheureusement, cela génère toujours l'erreur: 

Une erreur s'est produite lors du calcul des métriques de code pour le fichier cible '.dll' dans le projet. Pourrait pas identifier la plate-forme

La mauvaise nouvelle est que cela ne sera pas résolu pour Visual Studio 2017, mais que cela fonctionne comme prévu dans Visual Studio 2019 (actuellement, Preview 2). 

La bonne nouvelle, j’ai réussi à calculer des mesures à l’aide du projet Roslyn Analysers github. J'ai cloné le référentiel ( https://github.com/dotnet/roslyn-analyzers.git ). Et ensuite construire la solution. Un des artefacts créés est Metrics.exe dans le chemin <your dev root>\roslyn-analyzers\artifacts\bin\Metrics\Debug\net46\Metrics.exe

L’ouverture d’une invite de commande et l’exécution de Metrics.exe génèrent un texte d’aide utile. N'oubliez pas de spécifier un projet ou un fichier sln et /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.

Cela génère un fichier XML assez lourd qui peut ensuite être analysé pour extraire les métriques recherchées. C'est un peu pénible, mais cela a fonctionné pour moi car tout ce que je voulais, c'était de faire une série d'analyses ponctuelles sur une base de code .Net Core 2 assez étendue. 

0
Murray Foxcroft