2012-08-24 28 views
6

我有我自己的服務器,我正在升級其中一個解決方案到ASP.NET MVC 4,在升級其餘(3+)之前。對於MVC 4,Microsoft.AspNet.Mvc和System.Web.Mvc有什麼區別?

作爲這個的一部分,我爲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項運行:

在Solution Explorer中,引用單擊鼠標右鍵,選擇管理 的NuGet包。在左窗格中,選擇更新\所有,然後更新 如下:

  • ASP.NET MVC 4
  • (可選)的jQuery,jQuery驗證和jQuery UI
  • (可選)實體框架
  • (Optonal)Modernizr的

從我可以告訴ASP.NET MVC 4是指this NuGet package,它現在包含在微軟ASP.NET MVC 4(Microsoft.AspNet.Mvc),似乎是安裝在共享主機和雲平臺上。

或者我錯過了什麼?是否有理由安裝這個軟件包,即使我是我自己的服務器,並且可以按我的意願安裝/更新.NET框架?

編輯:請注意,檢查標題(我還沒有關閉它)確實顯示該網站的MVC版本是4.0,並且沒有NuGet包。它是否沒有被推入核心軟件包的修復/功能?它主要用於共享主機環境嗎?如果我保留它,是否會導致性能下降(如果已經安裝了MVC 4,我會考慮不必要地增加內存使用量來彌補這一點)?

回答

4

據我所知,他們是完全一樣的。即使NuGet包名爲Microsoft.AspNet.Mvc,它創建的dll文件名爲System.Web.Mvc.dll。它具有與GAC中的System.Web.MVC文件相同的大小,組合簽名等。

因此,現在即使您引用了兩個程序集,.NET也應該認識到它們完全相同,只加載其中一個程序集。微軟正在推出NuGet軟件包,使其更容易升級,因爲新版本不是基於.NET 4.5核心文件。或者,正如你猜測的那樣,NuGet包使得它可以在不允許安裝MVC的系統上運行MVC應用程序。