私は次のことをしようとしています:
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 に設定されているため、2 行目はアプリケーション ベースをまったく検索せず、すぐにクラッシュします (FileNotFoundException
上記のコードを実行している実行可能ファイルで)。
AssemblyResolve
2行目の前にハンドラを付けてみました:
m_appDomain.AssemblyResolve += OnAssemblyResolve;
意図は、AssemblyResolve
ハンドラーをApplicationBase
手動で実行し、必要なすべてのアセンブリをロードすることでした。これにより、アプリケーションが同じエラーでクラッシュしました。
ディレクトリがプローブされる順序を変更できません。この問題を回避するにはどうすればよいですか?
編集:
この質問が明確でないことは承知していますが、何が問題なのか理解に苦しむので、明確にするのは困難です。まず、作成したばかりの新しい AppDomain がアプリケーションの実行可能ファイルへの参照を必要とする理由がわかりません。何かを明確にしたい場合は、お知らせください。