为啥我们需要整合不同版本的包?

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版本

如何用不同的包完全覆盖嵌套的 npm 子依赖项(不仅仅是不同的包版本号)?

node可以同时用多个框架吗.js

nvm命令

linux不同版本的程序包安装

maven2打包不同jdk版本的包