为啥我们需要整合不同版本的包?
Posted
技术标签:
【中文标题】为啥我们需要整合不同版本的包?【英文标题】:why we need to consolidate packages with different versions?为什么我们需要整合不同版本的包? 【发布时间】:2022-01-24 05:33:41 【问题描述】:假设我有一个包含两个项目的解决方案。 ProjectA 使用版本号为 2.0.0 的包,ProjectB 使用版本号为 2.3.0 的相同包(ProjectB 使用包中的一些更高级的功能)。 所以在构建解决方案时,我认为VS添加了两个包(一个是2.0.0,另一个是2.3.0)。 但是VS在管理nuget包时也提供了一个整合标签,所以我只能想到整合不同版本的一个好处——减少程序集的大小(在我的例子中,使用2.3.0),除了大小问题,是不是整合不同版本的包还有其他好处吗?
【问题讨论】:
【参考方案1】:是的,更少的依赖问题。假设您有一个同时引用 ProjectA 和 ProjectB 的 ProjectC。编译器(通常!)会自动为您解决这个问题,并且只使用较新的包,但由于 ProjectA 最终是针对 2.0.0 构建的,因此可能会出现一些兼容性问题。如果依赖包的版本彼此之间不兼容二进制文件(例如,有一种方法仅在 2.0 中可用,但在 2.3 中被删除),这尤其是一个问题。
虽然编译器努力解决任何可能的版本冲突,但我认为在同一解决方案中只使用一个版本的依赖项是个好主意。它只是减少了您的头痛。
【讨论】:
以上是关于为啥我们需要整合不同版本的包?的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot整合Thymeleaf-基于SpringBoot2.X版本