我维护了一对Nuget包。我们称他们为Rosencrantz和Guildenstern(为什么不呢?)。 Guildenstern依赖于Rosencrantz,所以如果你安装Guildenstern,你就会得到它们。
事实证明,在实践中,你总是需要两者;安装只是 Rosencrantz是没有价值的。此外,事实证明他们需要以锁定步骤进行更新。因此,如果您更新Rosencrantz和而不是 Guildenstern,您可能会遇到奇怪的问题。 (如果你更新Guildenstern,它的依赖关系也会自动更新Rosencrantz,这样就行了。)
我想将这些整合到一个包中。理想情况下,我想将这个软件包命名为Rosencrantz,因为就开发人员而言,这就是所谓的,以及他们还需要安装Guildenstern这一事实有点令人困惑。 (这意味着人们经常升级Rosencrantz而不是Guildenstern,造成问题。)我可以这样做:我可以改变我的构建和发布过程,以便Rosencrantz的v1.1包含Guildenstern的v1.1,并且从不发布v1.1 Guildenstern分开。但是如果我这样做,那么当有人将他们的项目从Rosencrantz v1.0更新到v1.1时,他们的项目中仍然会有Guildenstern v1.0,而且他们将获得Guildenstern v1.1以及Rosencrantz v1.1。
如何让这个开发人员获得干净的体验?我的理想世界场景是,当开发人员升级到Rosencrantz v1.1或更高版本时,Guildenstern v1.0会自动从他们的项目中删除。