首页 > 解决方案 > 如果仅更改参考版本,我应该更新程序集版本吗?

问题描述

我有 1.0.0 版的 AssemblyA 和 1.0.0 版的 AssemblyB。AssemblyB 引用了 AssemblyA,我为这两个程序集创建了 NuGet 包。

现在,我在 AssemblyA 中做了一个错误修复,它获得了 1.0.1 版。我现在是否应该将 AssemblyB 也更新为 1.0.1 更改引用的原因,还是应该仅在代码发生更改时才更新版本?

NuGet 包仅用于本地源(公司范围)。

两种解决方案的优缺点是什么?我的优点是,我没有引用旧的、有缺陷的包,当我在 ApplicationC 中使用这两个程序集时,我只需要引用和更新 AssemblyB。但是,在不更改代码的情况下更新版本号让人感到畏缩。

标签: c#nugetnuget-package

解决方案


鉴于 MyCoolPackage 1.0.0 依赖于 MyPoorDependency 1.0.0,并且您已将 MyPoorDependency 错误修复为 1.0.1,那么是的,更新的包依赖意味着该包的新版本。

如果只发布依赖更新,MyCoolPackage 1.0.0 的元数据仍将指向 MyPoorDependency 1.0.0。您的包的用户不会知道它的依赖项有更新。他们可以将包管理器设置为仅安装最低公分母的依赖项,甚至将版本固定到 MyPoorDependency 1.0.0。因为毕竟,这就是您的 MyCoolPackage 1.0.0 所说的可以使用的东西。

为此,包管理器会查看所有用户的项目依赖项,会发现它需要 MyCoolPackage 1.0.0,它依赖于 MyPoorDependency 1.0.0,并且不会更新

所以是的,更新 MyCoolPackage 以要求 MyPoorDependency 1.0.1 并发布一个新版本,可能也是 1.0.1。


推荐阅读