计算.NET核心项目的代码度量标准?

时间:2016-07-09 21:41:19

标签: c# visual-studio visual-studio-2015 .net-core

我正在玩ASP.NET Core和.NET Core项目。对于经典的C#项目,Visual Studio 2015具有计算代码度量的功能。对于.NET Core,预览2工具中缺少支持。

在工具更完整之前,是否有人知道解决方法?

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:2)

NDepend支持.NET核心as per this

此外,SonarQube可以提供您正在寻找的一些指标(例如,代码行,Cyclomatic Complexity)。根据{{​​3}},版本2.3+支持.NET Core

答案 2 :(得分:0)

我将Microsoft.CodeAnalysis.FxCopAnalyzers nuget包添加到了我的.Net Core项目。这使我可以右键单击并运行代码分析,效果很好。

下一个挑战是使计算代码指标菜单选项起作用。

Calculate Code Metrics

不幸的是,这仍然会产生错误:

  

计算目标文件的代码指标时发生错误   项目中的“ .dll”。可以   无法识别平台

一个坏消息是,这将无法在Visual Studio 2017中修复,但是它确实可以在Visual Studio 2019(当前的预览版2)中正常工作。

好消息,我设法使用Roslyn Analyzers github项目来计算指标。我克隆了仓库(https://github.com/dotnet/roslyn-analyzers.git)。然后构建解决方案。创建的工件之一是路径<your dev root>\roslyn-analyzers\artifacts\bin\Metrics\Debug\net46\Metrics.exe

中的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代码库上进行一次性分析。