我在Asp.Net MVC 3的公司nuget服务器上有一个扩展包 - 假设包ID当前为Acme.Mvc
,其版本为2.x
。
我现在已经对该项目进行了分支,并将针对MVC 4 Beta推出相同软件包的预发布版本。现在,从逻辑上讲,这是库的版本3.x
;但是,一旦我发布它(一旦它不再预发布),2.x
将不再出现在VS'用户界面中;这可能会导致其他开发人员将其添加到他们的MVC 3项目中;并且拒绝他们在不使用控制台的情况下轻松访问旧版v2.x
库的任何未来升级。
在其他几个案例中,我更改了套餐ID以包含Acme.Mvc.3
版本,因此新老版本可以并排放置。唯一的问题是,有人可能尝试包括两者!还有一个稍微迂腐的问题,即称v3.x
不一定正确;因为它是一个新包装。
另外,我真的需要能够维护两个流。我可以依赖MVC 4站点中的Binding Redirects,它仍然引用了面向MVC 3的库的版本;因为我的扩展都不依赖于已经消失的东西。
当我看到公共nuget饲料;我很少见到在包ID中粘贴主要版本的做法,但是真的有其他选择吗?
答案 0 :(得分:0)
有许多现有的软件包使用MVC版本作为其命名约定的一部分来区分支持的版本: WindowsAzure.WebRole.MVC3 Unity.Mvc3 Spark.Web.Mvc2 Spark.Web.Mvc3 ...
“唯一的问题是,有人可以尝试包括两者!”
我不打算试图阻止这种情况,包装名称似乎显而易见,两者并不是并排的。