我想开始使用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 - 它背后的任何特定原因或历史?
答案 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一样(内部版本)。