我試圖加載程序集而不鎖定文件。這些程序集可能是第三方程序集,因此我們不一定有權訪問代碼,其中一兩個程序使用Assembly.Location從目錄讀取文件,這些文件可能依賴於它們。Assembly.Load(Byte [])和Assembly.Location/Assembly.Codebase
我知道你可以通過陰影複製來做到這一點,但真正讓它正常工作並且某些論壇上的某些用戶建議將程序集加載到字節數組並使用Assembly.Load(Byte []) )過載。直到其中一個程序集嘗試訪問其父目錄中的文件時,它才能正常工作,因爲Assembly.Location返回一個空字符串,而Assembly.Codebase返回加載程序集的應用程序的位置。
有什麼我可以做的,以某種方式設置我正在加載的程序集的代碼庫或位置屬性?在Codebase和Location的MSDN文檔中,它們被定義爲可覆蓋的屬性 - 這是否意味着我可以從宿主應用程序覆蓋它們?
大概影子應對將是最好的解決方案... – Restuta 2009-10-19 12:56:04
@Restuta,我同意。 – 2009-10-19 13:01:08