我正在尝试执行以下操作:
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 甚至需要对应用程序可执行文件的引用。如果您希望我澄清任何事情,请告诉我。