几年来,我一直在我的项目中使用 SourceMonitor,以记录 C# 和 C++ 组件的源代码复杂性和基本 SLOC(包括注释)。这些用于向我们的客户进行外部报告,因此我无法争论它们的优点或缺点。

我一直在开发一个存储库分析工具,它能够在任何日期/时间为我提供项目的快照视图。我要添加的下一阶段是缓存指定文件和修订的指标。

我知道 SourceMonitor 可以通过编写脚本来允许我提供要测试的文件并从结果文件 CSV 或 XML 中获取指标。

.NET 中是否有一个本机库可以用来做同样的事情——例如避免产生外部进程并解析结果。

我只需要以下指标:

  • SLOC
  • 注释行数
  • 最复杂方法的复杂度
  • 最复杂方法的名称

我需要运行这个 C# 代码和正常 C++ 代码。

编辑:由于我已经拥有提供所需 GUI 和报告的工具,因此需要使用库/API 编写或生成指标,无需手动步骤。理想情况下,我想获取指定文件/修订版(而不是整个项目)的指标,我的实用程序将自动从版本控制中拖动这些指标。

笔记:我为此创建了一个赏金,当它过期时我正在度假......NDepends 的答案并不令我满意,因为它不查看源代码,而是查看程序集本身!

有帮助吗?

解决方案 5

虽然我从未找到过可以同等解析 C# 和 C++ 的 .NET 产品,但我确实找到了一个易于使用的产品, 代码计数 支持这些语言以及更多语言。

它有一个简单的命令行,与我的项目中使用的 SourceMonitor 不同,直到 CODECOUNT 取代它。

其他提示

您可以在此处找到 C# SLOC 的开源代码和注释: http://code.google.com/p/projectpilot/source/browse/#svn/trunk/ProjectPilot.Framework/Metrics

用于计算 SLOC 的可靠的基于命令行的工具是 克洛克. 。它支持多种语言,包括 C# 和 C++。支持的输出格式为 xml、csv 和 sql。

这不会给你带来功能复杂性,而且它不可编写脚本(据我所知),但是 VS 的 SlickEdit Gadgets 有一个很棒的 SLOC 报告工具,你可以从解决方案资源管理器中使用,并会在文件中为你提供详细的报告,项目或解决方案级别。

你可以在这里得到它: http://www.slickedit.com/content/view/441

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top