捕获装配分辨率错误

时间:2012-04-10 18:30:54

标签: c#

我正在尝试执行以下操作:

m_appDomain = AppDomain.CreateDomain("Plugin AppDomain", null, new AppDomainSetup {PrivateBinPath = PluginActivator.SandboxFolder, PrivateBinPathProbe = "x"});    
PluginActivator activator = m_appDomain.CreateInstanceAndUnwrap(typeof(PluginActivator).Assembly.GetName().Name, typeof(PluginActivator).FullName) as PluginActivator;    

但是,由于PrivateBinPathProbe设置为true,因此第二行根本不会查看应用程序库,并立即崩溃(运行上述代码的可执行文件上的FileNotFoundException)。

我尝试在第二行之前附加一个AssemblyResolve处理程序:

m_appDomain.AssemblyResolve += OnAssemblyResolve;

目的是让AssemblyResolve处理程序手动进入ApplicationBase并加载所需的所有程序集。这导致应用程序崩溃并出现相同的错误。

我无法更改探测目录的顺序。我该如何解决这个问题?

修改

我知道这个问题不是很清楚,但我很难理解问题是什么,所以很难让人更清楚。首先,我不明白为什么我刚刚创建的新AppDomain甚至需要对应用程序可执行文件的引用。 如果您希望我澄清一切,请告诉我。

0 个答案:

没有答案