【发布时间】:2016-04-01 13:40:33
【问题描述】:
我的问题:
只要库的外部 API 向后兼容,向库添加新依赖项是否会影响二进制兼容性?
我的情况:
我的CBOR library 包含用于任意精度算术的类(在 PeterO 命名空间中)。 (它在 C# 和 Java 中;Java 版本位于单独的存储库中,但同样的问题适用于两个版本。)
我已将这些类移动到新的命名空间(在 PeterO.Numbers 中),并重命名它们(保留原始类以实现向后兼容性),因为它们现在所在的命名空间仅包含实用程序类。我计划将新类移动到一个单独的库中,并使 CBOR 库将该库作为依赖项调用,因为任意精度的类显然在 CBOR 之外很有用。 (我计划最终弃用旧类。)
但我担心以这种方式创建单独的库是否会导致二进制兼容性问题,这样我就不能只更新次要版本,还要更新主要版本。在撰写本文时,CBOR 库的版本为 2.3.1。我可以这样做并将版本更改为 2.4 还是仅 3.0?
【问题讨论】:
标签: java c# binary-compatibility