2008-09-26 86 views
1

我有利用的Environment.CurrentDirectory目錄交換方法的類。該代碼看起來是這樣的:的AppDomain和當前目錄

var str = Environment.CurrentDirectory; 
Environment.CurrentDirectory = Path.GetDirectoryName(pathToAssembly); 
var assembly = Assembly.Load(Path.GetFileNameWithoutExtension(pathToAssembly)); 
Environment.CurrentDirectory = str; 

正如我先前的文章中,我們使用這個目錄切換方法,允許指定的程序集的裝載以及任何引用組件,以及非託管程序集。我遇到的問題是,這個函數是在兩個不同的AppDomain中運行。在AppDomain A(我創建的AppDomain)中,代碼工作正常。在應用程序域B(默認的AppDomain)它拋出FileNotFoundException異常。對於這兩個調用,我試圖加載相同的程序集。任何線索爲什麼會是這種情況?

+0

它抱怨哪個文件 - 您正試圖加載的程序集或某些依賴項? – 2008-09-26 18:47:05

+0

我試圖加載的程序集 – 2008-09-26 19:02:23

回答

1

這個post建議你一旦加載它就不能改變主AppDomain的搜索路徑 - 你必須在配置文件中設置它 - 並且有很多建議,儘管它們都歸結爲「你不能在主AppDomain中完成」。