2013-05-07 62 views
1

一些背景無法加載在MVC視圖

我有一個封閉源代碼的asp.net MVC應用程序分佈於幾個客戶組裝。我試圖建立一個擴展到包括將由單一客戶可以使用一些非常具體的功能(他也將具有擴展的源代碼)。

我開發的延伸爲另一個MVC項目,加載的區域。我試圖避免在主應用程序「/ bin文件夾部署擴展二進制文件。

我在主應用程序部件的PreApplicationStartMethod中手動加載擴展程序集並依賴它。區域註冊過程進展順利,區域路線按預期註冊。

的問題

當我嘗試加載一些擴展頁中,我得到了一個「視圖‘XX’或找不到它的主人還是沒有視圖引擎支持搜索到的位置。」消息。我調查了一下,並用'Hello'字符串替換了視圖內容。視圖呈現正確。

我想產生一個最小觸發錯誤,原來它是「@ model'directive。我試圖找出發生了什麼,這是一個程序集加載錯誤。我創建了一個最小的觀點與「@model對象」,並試圖模型轉換爲原始類型,並得到了以下錯誤信息:「無法加載文件或程序集‘XXX’或它的一個依賴系統無法找到文件「(此程序集包含視圖使用的類類型)

爲了確認問題,我將提到的程序集移到了主應用程序的'/ bin'文件夾中,並且一切正常。

我也插控制器上某些型號的操作指令,只是爲了調查是否異常會出現,但一切都很好,我可以使用JSON甚至呈現一個網格。

我每加載assemly有:

var assembly = Assembly.LoadFrom(file) 
BuildManager.AddReferencedAssembly(assembly) 

有一些額外的東西我需要做什麼?

回答

1

需要添加裝配專用路徑

AppDomain.CurrentDomain.AppendPrivatePath(pluginFolder); 

不知道它真正的解釋,但我想這是涉及Assembly.LoadFrom(文件),而不是Assembly.Load()和視圖稍後編譯的事實。