我(可能像我之前那麼多人)試圖使用已棄用的Assembly.Load(Byte[])
方法將程序集加載到應用程序域中,其中所述程序集數據通過網絡傳輸,因此在技術上沒有物理存在。我想我已經經歷了幾乎所有的角落,試圖讓這個工作,但我相信這是不可能的(至少也許使用我目前的方法)。組件是否需要磁盤上的物理存在?
我想我的問題是,它是真的,爲了加載程序集,它必須位於CodeBase
/GAC
的應用程序?如果是這樣,爲什麼呢?
我(可能像我之前那麼多人)試圖使用已棄用的Assembly.Load(Byte[])
方法將程序集加載到應用程序域中,其中所述程序集數據通過網絡傳輸,因此在技術上沒有物理存在。我想我已經經歷了幾乎所有的角落,試圖讓這個工作,但我相信這是不可能的(至少也許使用我目前的方法)。組件是否需要磁盤上的物理存在?
我想我的問題是,它是真的,爲了加載程序集,它必須位於CodeBase
/GAC
的應用程序?如果是這樣,爲什麼呢?
不,這是不正確的。你可以從從字節數組中加載一個程序集;該陣列可以來自任何地方。作爲一個例子,我以前曾經使用過一個系統,它加載了從二進制字段存儲在數據庫中的程序集中的插件。
(也許你應該問另外一個問題,包括你面對,這樣就可以得到這個工作:-)問題)
嗯,我將不得不做更多的嘗試。 – sircodesalot
當然不是。您只需要.dll文件的實際byte []數據,在調用Load方法後,它會在CLR中加載一切正常。
當你嘗試時會發生什麼? – Jetti
似乎仍然在磁盤上搜索程序集的實際副本。這很奇怪 - 如果它仍然希望你在磁盤上有文件,那麼有一個'Byte []'覆蓋的意義是什麼? – sircodesalot
已棄用?似乎無法找到任何說明... – Chris