0

我在我们的公司 nuget 服务器上有一个用于 Asp.Net MVC 3 的扩展包 - 假设包 ID 当前是Acme.Mvc,它的版本是2.x.

我现在已经对该项目进行了分支,并准备发布针对 MVC 4 Beta 的同一包的预发布版本。现在,从逻辑上讲,这是3.x该库的版本;但是,一旦我发布它(一旦它不再预发布),它就2.x不再出现在 VS 的 UI 中;这可能会导致其他开发人员将其添加到他们的 MVC 3 项目中;v2.x并拒绝他们在不使用控制台的情况下轻松访问对旧库的任何未来升级)。

在其他一些情况下,我更改了包 ID 以包含一个版本,即Acme.Mvc.3新旧版本可以并排放置。唯一的问题是,有人可能会尝试将两者都包含在内!还有一个有点迂腐的问题,称这v3.x不一定是正确的。因为它是一个新包。

另外,我真的需要能够维护两个流。我可以依赖 MVC 4 站点中的绑定重定向,这些站点仍然引用针对 MVC 3 的库版本;因为我的扩展都不依赖于已经消失的东西。

当我查看公共 nuget 提要时;我很少看到这种在包 ID 中粘贴主要版本的做法,但真的有其他选择吗?

4

1 回答 1

0

有许多现有的包使用 MVC 版本作为其命名约定的一部分来区分支持的版本:WindowsAzure.WebRole.MVC3 Unity.Mvc3 Spark.Web.Mvc2 Spark.Web.Mvc3 ...

“唯一的问题是,有人可能会尝试将两者都包括在内!”

我不会费心试图阻止这种情况,从包的名称看来,两者并不意味着并排。

于 2012-05-23T01:53:16.637 回答