我有一个程序集提供了一个API并被其他程序集使用。我需要验证更新版本的API dll是否仍然与使用较早版本的API的旧程序集兼容。我如何测试.net程序集之间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我已经更新了我的问题,我想自动化这个过程,所以手动编译源代码或手动运行工具可能不是很方便 – username