对于MVC 4,Microsoft.AspNet.Mvc和System.Web.Mvc之间有什么区别?

Jam*_*emp 7 nuget-package asp.net-mvc-4

我有自己的服务器,我正在考虑升级我的一个解决方案到ASP.NET MVC 4,然后升级其余的(3+).

作为其中的一部分,我下载 ASP.NET MVC 4 的独立安装程序并在我的Server 2008 R2框上运行,因为Web Platform Installer 4.0具有工具更新,它想要安装Express和一系列其他应用程序.

该安装程序C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies使用System.Web.Mvc.dll 创建了一个目录.

我浏览了MVC 3到MVC 4的手动升级说明,我刚刚遇到第3项:

在Solution Explorer中,右键单击References并选择Manage NuGet Packages.在左侧窗格中,选择Updates\All,然后更新以下内容:

  • ASP.NET MVC 4
  • (可选)jQuery,jQuery Validation和jQuery UI
  • (可选)实体框架
  • (Optonal)Modernizr

从我可以告诉ASP.NET MVC 4引用这个NuGet包,它现在包含在Microsoft ASP.NET MVC 4(Microsoft.AspNet.Mvc)中,似乎是用于在共享主机和云平台上安装.

或者我错过了什么?即使我是我自己的服务器,是否有理由安装此软件包,并且可以根据需要安装/更新.NET框架?

编辑:请注意,检查标题(我还没有关闭它)确实显示该站点的MVC版本是4.0,并且没有NuGet包.修复/功能是否尚未被推入核心包中?它主要用于共享托管环境吗?如果我保留它,是否会导致性能损失(如果已安装MVC 4,我会考虑不必要地增加内存使用量)

Str*_*ior 6

据我所知,它们完全一样.即使调用了NuGet包Microsoft.AspNet.Mvc,它创建的dll文件也会被命名System.Web.Mvc.dll.它具有与System.Web.MVCGAC中的文件相同的大小,程序集签名等.

因此,就目前而言,即使您引用这两个程序集,.NET也应该认识到它们完全相同,并且只加载其中一个程序集.微软有可能推出NuGet软件包,以便在新版本出现时更容易升级,而不是基于核心.NET 4.5文件.或许,正如您猜测的那样,NuGet包使您可以在不允许安装MVC的系统上运行MVC应用程序.