NuGet包作者如何避免版本地狱?

时间:2015-12-16 16:50:37

标签: nuget

假设我想在nuget.org上发布NuGet包。

这取决于,例如,Newtonsoft.Json。所以我在.nuspec中设置了这个依赖项,并包含一个N..Json版本号为1(为了args)。

如果N..Json移动到2,并且使用我的包的人也移动到2,那么他们现在处于泡菜中,因为我的包需要1并且他们正在使用2吗?

据推测,要首先添加我的软件包,他们必须要么已经安装了N..Json,要么已经安装了N..Json,请使用我的软件包使用的确切版本。

我认为规定一个确切的版本是不好的。所以我省略了版本,但是如果N..Json有突破性的变化,现在我的包可能会破坏。

相反,我在.nuspec中添加了一个范围,现在我已经在那里了。

但是我还没有对所有客户强制规定他们可以使用的最大版N..Json吗?

我现在是否需要不断关注我的软件包使用的软件包版本,并确保我能够在余生中进行测试?

在NuGet.org上是否有一些系统可以提醒我,我的软件包已经落后或可能受到其他人工作中断路器的影响?

如果客户尝试将N..Json全局更新到最新版本会发生什么,很明显我的软件包是阻止程序?

什么是既定的最佳做法?

1 个答案:

答案 0 :(得分:1)

我不相信nuget.org会为版本管理提供任何帮助。您应该按照semver.org指导对软件包和软件包依赖项进行版本控制。 这可能会导致已安装更高版本依赖包的人员出现问题。但是,没有什么能阻止您并排安装多个版本。