Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算.NET核心项目的代码度量?_C#_Visual Studio_Visual Studio 2015_.net Core - Fatal编程技术网

C# 计算.NET核心项目的代码度量?

C# 计算.NET核心项目的代码度量?,c#,visual-studio,visual-studio-2015,.net-core,C#,Visual Studio,Visual Studio 2015,.net Core,我在玩ASP.NET核心和.NET核心项目。对于经典的C#项目,VisualStudio2015具有计算代码度量的功能。对于.NET Core,Preview 2工具中缺少支持 在工具更完整之前,有人知道解决方法吗?NDepend支持.NET core 此外,SonarQube还可以提供您正在寻找的一些指标(例如代码行数、圈复杂度)。根据,版本2.3+支持.NET Core它现在在VS 2019预览版1中提供,如下所示: 我将Microsoft.CodeAnalysis.FxCopAnalyze

我在玩ASP.NET核心和.NET核心项目。对于经典的C#项目,VisualStudio2015具有计算代码度量的功能。对于.NET Core,Preview 2工具中缺少支持


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

NDepend支持.NET core


此外,SonarQube还可以提供您正在寻找的一些指标(例如代码行数、圈复杂度)。根据,版本2.3+支持.NET Core

它现在在VS 2019预览版1中提供,如下所示:


我将Microsoft.CodeAnalysis.FxCopAnalyzers nuget包添加到.Net核心项目中。这使我可以右键单击并运行代码分析,这非常有效

下一个挑战是让CalculateCodeMetrics菜单选项正常工作

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

计算目标文件的代码度量时出错 项目中的“.dll”。能够 不识别平台

坏消息是,Visual Studio 2017不会修复此问题,但它在Visual Studio 2019(当前预览版2)中的效果与预期一样

好消息是,我成功地使用github项目计算了指标。我克隆了repo()。然后构建解决方案。创建的工件之一是路径
\roslyn analyzers\artifacts\bin\Metrics\Debug\net46\Metrics.exe

打开命令提示符并运行
Metrics.exe
将生成有用的帮助文本。请记住指定一个项目或sln文件和
/out:.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.
用法:Metrics.exe 命令行参数的帮助: /项目:[缩写:/p:] 要分析的项目。 /解决方案:[缩写:/s:] 要分析的解决方案。 /out:[缩写:/o:] 度量结果XML输出文件。 /安静[简短形式:/q] 使除错误报告之外的所有控制台输出静音。 /帮助[缩写:/?] 显示此帮助消息。
这将生成一个相当笨拙的XML文件,然后可以对该文件进行解析,以提取所需的度量。这有点痛苦,但对我来说很有效,因为我只想在一个相当广泛的.Net Core 2代码库上做一次一次性的分析

你可以试试反射器。它很旧了,所以不确定它是否还能用。。。还有NDepend,但它不是免费的。我已经使用试用版试用了NDepend(版本6.3.0)。不幸的是,我没有得到.NET核心项目的结果。您想要得到什么代码度量?测试覆盖率、复杂性?@TerribleDev:最初我想知道Visual Studio为经典.net项目提供的度量标准(可维护性指数、圈复杂度、继承深度、类耦合和代码行)。特别是我对代码行和圈复杂度感兴趣。正如你所提到的,测试覆盖率不再是问题。微软在vs 2019中尝试了aspnetcore项目,但在netcoreapp2.2的预览版1.0中,这个令人悲伤的答案似乎对我来说不起作用。它对你有什么作用,你有错误吗?没有错误,但也没有结果。我的vs 2019版本为16.1.2。aspnetcore v2.1我有16.2.0,也许就是这样。请更新并重试。