免费C#指标计算库(DLL)

我想问你是否知道一些计算CK指标的免费C#库(dll)(主要是Cyclomatic Complexity)。

对于我打算做的项目,我需要这样做。 我知道已经有一些完成的解决方案可以计算CK指标并以各种forms显示给你,但我需要的是我可以在我的应用程序中使用的解决方案。 所以在开始写自己之前我首先想问你。

谢谢

DrivenMetrics是一个开源的C#命令行工具。 核心function作为库与命令行控制台客户端隔离( 此处可以使用Core项目)。

即使非常简单,它也可能符合您的需求:它是免费的,计算行数并计算方法的圈复杂度(潜在代码路径的数量)。

这是通过直接分析IL来实现的,这要归功于Mono.Cecil (NDepend依赖的库)。 这允许对使用C#,VB.Net编写的代码构建的程序集执行分析,…

  • 该项目已在此处公布。
  • 代码源可以在github上找到 。
  • 还提供打包版本。
  • 它适用于Windows和Mono。

更新:

另一个选择是令人惊叹的 Gendarme ,一个来自Mono项目的静态分析工具。

作为使用示例,下面的代码显示了程序集中每个方法的圈复杂度。

ModuleDefinition module = ModuleDefinition.ReadModule(fullPathToTheAssembly); foreach (var type in module.Types) { foreach (var me in type.Methods) { if (!me.HasBody || me.IsGeneratedCode() || me.IsCompilerControlled) continue; var r = AvoidComplexMethodsRule.GetCyclomaticComplexity(me); Console.WriteLine("{0}: {1}", me.ToString(), r); } } 
  • 该项目在此处描述
  • 代码源可以在github上找到
  • 打包版本也可用
  • 它适用于Windows和Mono

我正在使用SourceMonitor ,这是一个很好的免费软件应用程序,可以测量各种语言(包括C#)的代码复杂性和其他指标。 我们从命令行驱动它以生成XML输出,然后我们使用LINQ to XML来提取和排序我们感兴趣的数据。然后我们使用NVelocity创建HTML报告。

我知道它不是托管库,但您可能会发现它可以满足您的需求。

我使用Microsoft的工具来计算C#程序集的代码度量。

它包括环状复合物,可维护性指数等。

详情如下:

http://blogs.msdn.com/b/camerons/archive/2011/01/28/code-metrics-from-the-command-line.aspx

在这里下载:

http://www.microsoft.com/en-us/download/details.aspx?id=9422

这不是免费的,但我对NCover有过这方面的良好经验。 他们还很好地集成了很多CI工具。

支持82个代码指标 NDepend是针对.NET开发人员的代码指标Roll’s Royce工具(但它是一个商业工具)。