【发布时间】:2011-11-26 15:02:30
【问题描述】:
我有一个提供 API 并被其他一些程序集使用的程序集。我需要验证新版本的 API dll 是否仍与使用旧版本 API 的旧程序集兼容。
我发现了几个相同的问题,但没有解决我的问题的答案:
建议的工具只能比较两个程序集并说明 API 中是否可能存在重大更改,但不能说明最新 API 是否真的破坏了使用它的旧程序集。 我想找到一个工具或编写一个测试来检查每个旧 dll 是否可以与我的新 API dll 一起使用。
至于 API 的更改,我很可能只会对其进行扩展,但即使它仍然会破坏旧程序集中的代码。可以在此处找到此类更改的一些示例:
- A definite guide to API-breaking changes in .NET
- .NET: with respect to AssemblyVersion, what defines binary compatibility?
目前我看到的唯一解决方案是使用最新的 API 编译旧程序集的源代码,但我想只使用程序集并将它们添加为我的单元测试的一部分。有没有更好的方法可以解决这个问题?
编辑:
我正在寻找一种能够自动验证 .net 程序集之间向后兼容性的过程的工具。 (命令行或一些api)
【问题讨论】:
-
这可能是我缺乏理解,但我不明白你正在寻找的工具可以做得更好或更容易,只是编译组合源。我的意思是,该工具还需要旧资源和新资源,以便能够按照您的意图分析重大更改,不是吗?也许你可以填写我。
-
@GertArnold 我已经更新了我的问题,我想自动化这个过程,所以手动编译源代码或手动运行工具可能不太方便
标签: c# api backwards-compatibility