为什么将ASP.NET WebAPI包库与版本5.1.0一起调用为ASP.NET WebAPI 2.1?

时间:2014-06-23 09:16:46

标签: asp.net .net asp.net-mvc asp.net-web-api asp.net-webpages

我想开始使用2014年1月发布的ASP.NET MVC和WebAPI。

ASP.NET MVC 5.1,ASP.NET Web API 2.1和ASP.NET网页3.1(参考:NuGet)

我创建了一个新的ASP.NET Web应用程序(.NET 4.5.1)> “空模板”> “Web API”已检查> “无认证”

在NuGet包文件夹下,我检查了此Web API空项目引用的库的版本,发现所有DLL(NewtonSoft除外)的版本都与5.1类似。

ASP.NET MVC包也是如此。

问题:所有库都被版本化为5.1 ...,事件ASP.NET MVC被称为5.1,那么为什么ASP.NET WebAPI称为2.1 - 它背后的任何特定原因或历史?

2 个答案:

答案 0 :(得分:1)

原因是在ASP.NET解决方案中经常一起使用 ASP.NET MVC ASP.NET Web API ,它们是两个不同的框架。

ASP.NET Web API 是在MVC之后集成到ASP.NET中的新产品,因此版本控制存在差异。

同样不是Razor也是一个单独的框架,是单独开发/发布的,并且有自己的版本(3.0.0.0),ASP.NET下使用的其他一些库也有不同的版本。

答案 1 :(得分:1)

版本2.1是您应该注意的版本,因为这是ASP.NET Web API NuGet包的命名版本,也是正式使用的唯一编号。

库版本号5.x是构成Web API 2.1的各个组件库的内部 - 而5.1并非巧合,正如您所注意到的,因为Web API与所有其他Web内容共享一个公共根。从技术上讲,ASP.NET Web API有两种不同的版本控制方案,一种是产品的正式版本,另一种是库版本。

如果你查看ASP.NET Web API 2.2的NuGet包,你会看到URL是

  

https://www.nuget.org/packages/Microsoft.AspNet.WebApi/5.2.0-rc

这意味着字面意思是这是ASP.NET Web API 2.2版本5.2.0 RC,这令人困惑。但考虑它的一种方法是“ASP.NET Web API 2.2”是产品的名称,而5.2.0是产品的内部版本号 - 与Windows 8(名称)vs Windows 6.2.9200一样(内部版本)。