代码之家  ›  专栏  ›  技术社区  ›  Pat O

我正在寻找类似libcheck的工具来评估同一个sdk的不同版本[关闭]

  •  4
  • Pat O  · 技术社区  · 15 年前

    我正在开发一个SDK。当我发布新版本时,我想生成一个关于API差异的报告。这不是代码的区别。大多数代码不需要直接使用。公共类/方法是我感兴趣的。此外,我们还采用了一种约定,即包含实现的名称空间中的任何内容都不应该由SDK的客户端使用。因此,我在寻找不在包含实现的命名空间中的公共接口、类和方法之间的差异。我想知道在两个版本之间删除、添加和修改了什么。

    我找到了微软的一个叫做libcheck的工具,它在正确的范围内。我对libcheck有一些问题。libcheck无法识别已修改的方法。它报告该方法已被删除和添加。它有时报告一个方法已被删除和添加,但名称和参数都是相同的。在这种情况下,我不知道它想告诉我什么。最后,我不关心报告的布局。我希望按名称空间以及程序集和类进行分解。

    我知道这些报告是一个XSLT转换的结果,我可以让它们看起来本质上是我想要的。不过,其他问题加上微软对该工具普遍缺乏支持,让我不得不寻找替代方案。

    2 回复  |  直到 13 年前
        1
  •  1
  •   Dejan Scott Dorman    13 年前

    还有 http://apichange.codeplex.com 有不同的选择。像这样称呼它

    ApiChange -diff -old $net2dir\System.dll -new $net4dir\System.dll
    

    你应该得到一份报告。

        2
  •  2
  •   ЯegDwight kri    13 年前

    工具,如 NDepend 非常适合此工作,并且内置了“API”级别的差异报告功能,而不仅仅是文本,例如:

    Compare Builds and Code Diff

    ndepend有自己的代码查询语言cql,可用于编写高度定制的静态分析报告:

    Code Query Language