我有自己的服务器,我正在考虑将我的一个解决方案升级到ASP.NET MVC 4,然后再升级其余的(3 +)。
作为其中的一部分,我为ASP.NET MVC 4下载了the standalone installer并在我的Server 2008 R2上运行它,因为Web Platform Installer 4.0有工具更新,它想要安装Express和其他一些应用
该安装程序使用System.Web.Mvc.dll创建了一个C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies
目录。
我经历了the manual upgrade notes for MVC 3 to MVC 4,我刚刚遇到第3项:
在“解决方案资源管理器”中,右键单击“引用”,然后选择“管理” NuGet包。在左侧窗格中,选择Updates \ All,然后更新 以下内容:
- ASP.NET MVC 4
- (可选)jQuery,jQuery验证和jQuery UI
- (可选)实体框架
- (Optonal)Modernizr
从我可以告诉ASP.NET MVC 4引用this NuGet package,它现在包含在Microsoft ASP.NET MVC 4(Microsoft.AspNet.Mvc)中,似乎是用于在共享主机上安装,和云平台。
或者我错过了什么?即使我是我自己的服务器,是否有理由安装此软件包,并且可以按照我的意愿安装/更新.NET框架?
编辑:请注意,检查标题(我还没有关闭它)确实显示该站点的MVC版本是4.0,而且没有NuGet包。修复/功能是否尚未被推入核心包中?它主要用于共享托管环境吗?如果我保留它,是否会导致一些性能损失(如果已安装MVC 4,我会考虑不必要地增加内存使用量)?
答案 0 :(得分:5)
据我所知,它们完全一样。尽管NuGet包被称为Microsoft.AspNet.Mvc
,但它创建的dll文件名为System.Web.Mvc.dll
。它与GAC中的System.Web.MVC
文件具有相同的大小,程序集签名等。
因此,就目前而言,即使您引用这两个程序集,.NET也应该认识到它们完全相同,并且只加载其中一个程序集。微软有可能推出NuGet软件包,以便在新版本出现时更容易升级,而不是基于核心.NET 4.5文件。或许,正如您猜测的那样,NuGet包使您可以在不允许安装MVC的系统上运行MVC应用程序。