我的公司现在正在使用 nuget 来打包我们所有的共享程序集。我们还开始使用标签基于 semver 对它们进行版本控制。
我有一种情况,nuget 没有像我预期的那样工作。
我有 3 个共享程序集....
- 枚举
- 常见的
- 商业逻辑
在包装参考方面...
- 通用 => 枚举
- BusinessLogic => 通用,枚举
BusinessLogic 同时依赖于 Common 和 Enum 的原因是,当它不需要使用已添加的新枚举时,我不想更新 Common 的依赖关系(以及重建、打包、发布)。商业逻辑
所以,我添加了一个枚举并想在 BusinessLogic 中使用它。
在我这样做之前,这些是所有内容的版本......
- 枚举 = 1.4.0
- 常见 = 1.2.1
- 业务逻辑 = 2.0.1
我现在将要在 BusinessLogic 中使用的新枚举值添加到枚举项目并构建、打包、发布......
- 枚举 = 1.5.0
- 常见 = 1.2.1
- 业务逻辑 = 2.0.1
现在,我对 BusinessLogic 进行了更改,提交、推送、打包等......
- 枚举 = 1.5.0
- 常见 = 1.2.1
- 业务逻辑 = 2.1.0
所以,现在依赖关系看起来像这样......
- 通用 => 枚举 1.4.0
- 业务逻辑 => 枚举 1.5.0
现在我跑...
nuget pack BusinessLogic.csproj
我期望发生的是 nuget 会看到 Common 需要 Enum 的 1.4.0,但 BusinessLogic 需要 1.5.0,因此在包中添加了对Enum >= 1.5.0
.会实现它。
这种行为是设计使然吗?