将两个Nuget包合并为一个

将两个Nuget包合并为一个,nuget,Nuget,我有一对Nuget软件包。让我们称他们为罗森克兰茨和吉尔登斯特恩(为什么不呢?)。Guidenstern依赖于Rosencrantz,因此如果安装Guidenstern,则两者都可以 事实证明,在实践中,你总是需要两者;仅仅安装Rosencrantz是毫无价值的。此外,事实证明,它们需要在锁定步骤中更新。所以如果你更新罗森克兰茨而不是吉尔登斯特恩,你可能会遇到奇怪的问题。(如果您更新Guildenstern,它的依赖项也会自动更新Rosencrantz,因此工作正常。) 我想把这些整合到一个包中

我有一对Nuget软件包。让我们称他们为罗森克兰茨和吉尔登斯特恩(为什么不呢?)。Guidenstern依赖于Rosencrantz,因此如果安装Guidenstern,则两者都可以

事实证明,在实践中,你总是需要两者;仅仅安装Rosencrantz是毫无价值的。此外,事实证明,它们需要在锁定步骤中更新。所以如果你更新罗森克兰茨而不是吉尔登斯特恩,你可能会遇到奇怪的问题。(如果您更新Guildenstern,它的依赖项也会自动更新Rosencrantz,因此工作正常。)

我想把这些整合到一个包中。理想情况下,我想将这个包命名为Rosencrantz,因为对于开发人员来说,这就是所谓的,而且他们还需要安装Guidenstern这一事实有点让人困惑。(这意味着人们会定期升级Rosencrantz而不是Guidenstern,这会导致问题。)我可以这样做:我可以更改我的构建和发布过程,使Rosencrantz的v1.1包括Guidenstern的v1.1,并且永远不会单独发布Guidenstern的v1.1。但如果我这样做,那么当有人将他们的项目从Rosencrantz v1.0更新到v1.1时,他们的项目中仍然会有Guidenstern v1.0,而且他们会得到Guidenstern v1.1以及Rosencrantz v1.1


我如何才能让这成为一个干净的开发人员体验?我的理想情况是,当开发人员升级到Rosencrantz v1.1或更高版本时,Guidenstern v1.0将自动从他们的项目中删除。

您是否将Rosencrantz视为Guidenstern中的依赖项?因为如果Guidenstern 1.0不能与Rosencrantz 1.1一起使用,那么您没有在.nuspec文件中正确配置依赖项版本范围。@Stijn这是一个很好的观点。如果我找不到一个我满意的整合路径,我会考虑将来的版本。