警惕!高版本VS發布時預編譯導致Mono中Razor找不到視圖


  早前一段時間,一位朋友在Q群里面找到我,說它按照《Linux.NET學習手記》的操作,把一個ASP.NET MVC 4.0的項目部署到Mono之后出現Razor無法找到視圖的現象。當時費了一番周章才把問題解決。而最近一段時間,群里也有其他的朋友出現相同的問題,隨着時間的推移,想必會有越來越多朋友會使用高版本的VS,於是我把當時的情況重現出來,並把解決辦法記錄下來。


  像往常一樣,我們創建了一個MVC4的項目。

  然后添加了一個視圖,默認的那個(/Home/Index),然后,再發布到Linux.NET里面。

  然后就出現了如圖的這個令人不愉快的頁面,我們的Razor找不到視圖了。

  而事實上,我們是有這個視圖的,並且也不存在常見的大小寫和權限問題。

  由於近期為了體驗.NET Nactive,裝了個VS2013並打上了Update包,所以我把目光聚焦在了這次的更新當中,不排除更新是系統的一些配置諸如Config或者DLL出現變化而導致Linux.NET的不兼容。

  經過一番的排查,我突然發現,VS在發布的地方多了個容易讓人忽略的東西(平時折疊起來了)。

  正如圖中所見的,選項中多出了“在發布期間預編譯”這么一個選項。把這個勾去掉,然后重新發布。再次刷新頁面:

  Razor引擎又恢復正常了,視圖被重新找到了。


  目前發現VS2013和VS2012 Update2以上 會出現“發布時預編譯”這個功能,各位朋友需要多加留意。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM