使用 VS2013 / VS2012 Update 2 以上版本發布 ASP.NET MVC 4 專案部署至 Linux Mono 環境時,瀏覽頁面拋出 「Razor 找不到視圖」** 錯誤,但視圖檔案實際存在且大小寫、權限均正確。
VS 高版本發布精靈預設勾選 「發布期間預編譯」** 選項。預編譯會將 .cshtml 視圖編譯為 DLL,並移除原始 .cshtml 檔案。Mono 的 Razor 引擎 (System.Web.Razor) 版本較舊,無法正確載入預編譯產出的組件或尋找視圖路徑**,導致執行時找不到視圖。
-fixednames、-u 參數產生固定命名組件,配合 Mono 部署測試。部署至 Mono 時,務必關閉 VS 發布預編譯選項。這是已知的相容性陷阱,若專案必須長期在 Mono 運行,建議規劃遷移至 ASP.NET Core 以獲得完整跨平台支援。