2012-03-30 95 views
4

在多个版本树中使用NuGet的正确/可接受的方式是什么?我们有一款采用2.12版本的产品,并且正在不断开发,生成属于主号码2的较新版本。与此同时,我们的3.5版本也正在积极开展其他功能集和模式的研究。如果我使用相同的NuGet包ID,用户将默认获得3.5版本。NuGet版本树

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

回答

5

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

在packages.config你可以设置一个version constraint

<packages> 
    <package id="SomePackage" version="2.1.0" allowedVersions="[2,3)" /> 
</packages> 

这将使客户获得最新的2.x版,但从来没有升级到3.x版。

1

本页面:http://nuget.codeplex.com/wikipage?title=Pre-Release%20Packages应该会帮到你。简而言之,标记为2.12的包将被归类为稳定,但是包含例如字母的版本3.5beta被视为预发布版本,只能使用–Prerelease标志进行安装。

+0

谢谢。这有助于更高版本处于测试阶段,但我有两种主要版本2和3都在生产中的情况,它们具有不同的功能集和数据库模式,并且它们自己进化。一个答案是,这不是最佳做法,但这就是我所处的情况。 – 2012-03-30 15:08:22