首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MVC 專案 System.Web.Mvc 版本高於伺服器?透過 NuGet 降級或伺服器安裝對應版本解決

     編輯:程式設計綜合問答

問題現場

  • 專案參考 System.Web.Mvc 3.0.0.1
  • 伺服器 GAC 僅有 3.0.0.0
  • 部署時出現 Could not load file or assembly 'System.Web.Mvc, Version=3.0.0.1...

解決方案

方案一:專案降級至伺服器版本(推薦,零部署成本)

  1. 方案總管 → 參考 → System.Web.Mvc → 右鍵「管理 NuGet 套件」。
  2. 搜尋 Microsoft.AspNet.Mvc → 選版本 3.0.20105.0(對應 3.0.0.0) → 安裝。
  3. 重建專案,確認 bin 目錄下 DLL 版本為 3.0.0.0。

方案二:將較新 DLL 隨應用程式部署(Bin Deploy)

  1. 參考屬性 → Copy Local = True。
  2. 發布時 bin 會包含 System.Web.Mvc.dll (3.0.0.1),應用程式優先載入本地副本。
  3. 需確認 web.config assemblyBinding 無強制導向舊版。

方案三:伺服器安裝對應版本(需管理員權限)

下載 ASP.NET MVC 3 Tools Update(含 3.0.0.1)於伺服器安裝,將 GAC 更新。

最佳實踐建議

  • 鎖定版本:專案建立即透過 NuGet 鎖定 Microsoft.AspNet.Mvc 版本,避免開發機/建構機/伺服器版本漂移。
  • Bin Deploy 為常態:ASP.NET Core 時代所有依賴皆隨應用部署,MVC 5 專案亦建議開啟 Copy Local,消除環境差異。
  • 遷移至 ASP.NET Core:MVC 3 為 2011 年技術,已停止支援。新專案請直接使用 ASP.NET Core 8+,享受跨平台、高效能、長期支援。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved