是否有可能找到整个解决方案中的代码行数?我听说过MZ-Tools,但是是否有一个开源的工具?


当前回答

我更喜欢OxyProject Metrics VS插件。

其他回答

在Visual Studio Team System 2008中,你可以在Analyze- >菜单中执行“计算解决方案的代码度量”,它将为你提供整个解决方案的行数(其中包括g)。

您可以使用Visual Studio Code Metrics PowerTool 10.0。它是一个命令行实用程序,为您计算托管代码(包括代码行)上的一些指标。你可以获得一个VS 2010插件,它可以将工具带入Visual Studio,并使它像选择菜单项并单击“Analyze Solution”一样快速。

我发现powershell在这方面很有用。我认为LoC是一个非常虚假的指标,所以我不认为需要任何更正式的东西。

从一个较小的解决方案目录:

PS C:\Path> (gci -include *.cs,*.xaml -recurse | select-string .).Count
8396
PS C:\Path>

这将计算所有解决方案的.cs和.xaml文件中的非空行。对于一个较大的项目,我只是使用了不同的扩展列表:

PS C:\Other> (gci -include *.cs,*.cpp,*.h,*.idl,*.asmx -recurse | select-string .).Count
909402
PS C:\Other>

如果一个命令行就可以做到,为什么要使用整个应用程序呢?:)

正则表达式在VS2010和2012之间发生了变化,因此这里的大多数正则表达式解决方案不再适用

(^(?!(\s*//.+)))+(^(?!(#.+)))+(^(?!(\s*\{.+)))+(^(?!(\s*\}.+)))+(^(?!(\s*\r?$)))+

将找到所有不是空白的行,不只是一个括号('{'或'}'),不只是一个#include或其他预处理器。

使用Ctrl-shift-f并确保正则表达式被启用。

VS 2010及更早版本对应的正则表达式为

^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+

这里的答案有点过时了,可能是从2008年开始的。因为在较新的Visual Studio版本2010/2012中,此功能已经内置。因此,没有理由为它使用任何扩展或工具。

计算代码行数的功能-计算度量。有了它,您可以计算每个项目或解决方案的度量(LOC、维护索引、圈索引、继承深度)。

只需在解决方案资源管理器中右键单击解决方案或项目,

并选择“计算指标”

以后用于分析和聚合的数据可以导入到Excel中。此外,在Excel中,你还可以过滤掉生成的类或其他指标中的杂音。包括代码行LOC在内的这些指标也可以在构建过程中收集,并包含在构建报告中