NuGet版本树

NuGet版本树,nuget,Nuget,将NuGet与多个版本树一起使用的正确/可接受的方法是什么?我们有一个2.12版本的产品,它正在不断开发,生成属于主要版本2的新版本。同时,3.5版也在积极地与其他功能集和模式一起工作。如果我使用相同的NuGet包ID,默认情况下用户将始终获得3.5版本 我是否应该为每个主要项目版本创建不同的包ID?此页面:应该在这里帮助您。简而言之,标记为2.12的软件包将被归类为稳定软件包,但带有字母In的版本,例如3.5beta被视为预发布版本,只能使用–Prerelease标志进行安装。对于您的情况,我

将NuGet与多个版本树一起使用的正确/可接受的方法是什么?我们有一个2.12版本的产品,它正在不断开发,生成属于主要版本2的新版本。同时,3.5版也在积极地与其他功能集和模式一起工作。如果我使用相同的NuGet包ID,默认情况下用户将始终获得3.5版本


我是否应该为每个主要项目版本创建不同的包ID?

此页面:应该在这里帮助您。简而言之,标记为
2.12
的软件包将被归类为稳定软件包,但带有字母In的版本,例如
3.5beta
被视为预发布版本,只能使用
–Prerelease
标志进行安装。

对于您的情况,我看到两种可能的解决方案。您可以使用不同的包ID,也可以通过手动编辑packages.config文件来约束客户端使用特定的版本范围

在packages.config中,您可以设置:



这将使客户端获得最新的2.x版本,但永远不会升级到3.x版本。

谢谢。这对更高版本的测试版很有帮助,但我遇到的情况是,主要版本2和3都在生产中,它们有不同的功能集和db模式,并且它们自己发展。一个答案是,这不是最好的做法,但这正是我所处的情况。
<packages>
    <package id="SomePackage" version="2.1.0" allowedVersions="[2,3)" />
</packages>