我正在开发一个 SDK。当我发布新版本时,我想生成一份关于 API 差异的报告。这不是代码中的差异。大多数代码预计不会直接使用。公共类/方法是我感兴趣的。此外,我们采用了这样的约定,即命名空间中包含实现的任何内容都不应被 SDK 的客户端使用。因此,我正在寻找不在包含实现的命名空间中的公共接口、类和方法的差异。我想知道在两个版本之间删除、添加和修改了什么。
我从微软找到了一个名为 LibCheck 的工具,它在正确的范围内。我对 LibCheck 有几个问题。LibCheck 无法识别已修改的方法。它报告该方法已被删除和添加。它有时会报告一个方法已被删除和添加,但名称和参数都相同。我不知道在这些情况下它试图告诉我什么。最后,我不关心报告的布局。我想按名称空间以及程序集和类进行细分。
我知道这些报告是 XSLT 转换的结果,我可以让它们看起来像我想要的任何东西。还有其他问题,再加上微软对该工具普遍缺乏支持,让我不得不寻找替代方案。