c# - 如果仅更改参考版本,我应该更新程序集版本吗?
问题描述
我有 1.0.0 版的 AssemblyA 和 1.0.0 版的 AssemblyB。AssemblyB 引用了 AssemblyA,我为这两个程序集创建了 NuGet 包。
现在,我在 AssemblyA 中做了一个错误修复,它获得了 1.0.1 版。我现在是否应该将 AssemblyB 也更新为 1.0.1 更改引用的原因,还是应该仅在代码发生更改时才更新版本?
NuGet 包仅用于本地源(公司范围)。
两种解决方案的优缺点是什么?我的优点是,我没有引用旧的、有缺陷的包,当我在 ApplicationC 中使用这两个程序集时,我只需要引用和更新 AssemblyB。但是,在不更改代码的情况下更新版本号让人感到畏缩。
解决方案
鉴于 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。
推荐阅读
- html - 如何从一个元素应用悬停效果,该元素更改了 HTML 和 CSS 中的另一个元素
- reactjs - ReactJS 异步返回
- python-3.x - python isinstance“用户定义数据类型”和“JSON对象”
- sql - 在 AutoMapper ProjectTo IQueryable 树中使用属性函数的最佳方式
- python - 使用 django 制作没有 id 的重复条目
- javascript - Googlebot 导致 JavaScript 错误
- javascript - 使用 discord.js,我如何将 API 结果的不必要部分切掉以发送?
- cassandra - 在 Cassandra 表中插入大型 JSON
- css - flex项目的flex-grow和width之间的不一致
- php - Discord OAuth2 不发送电子邮件