从内部卸载AppDomain
|
我们已经构建了WPF可执行文件。
我想在子AppDomain中启动此可执行文件。
因此,将有一个名为Boot loader的主机AppDomain,它将在单独的AppDomain中启动WPF应用。
WPF应用程序可以自行触发更新,将新文件下载到一个临时文件夹中,然后需要向引导加载程序发出信号以卸载它并更新WPF dll /文件。更新完成后,我们要重新启动WPF应用程序。
所以首先我需要创建一个新域:
AppDomain wpfDomain = AppDomain.CreateDomain(\"WPF Domain\");
wpfDomain.ExecuteAssembly(WPFAPP_PATH + \"WpfApp.exe\");
现在,棘手的部分是弄清楚如何向引导加载程序发送信号以卸载WPF应用程序并对其进行更新。
我尝试处理DomainUnload
事件。它是在WPF域中调用的,因此我无法重新启动该域。尝试调用以重新创建WPF AppDomain并执行程序集时,出现2字样。
接下来,我读到卸载使域中的所有线程中止,因此我尝试为WPF域创建一个新线程并将主线程加入其中。下载更新时,我内部呼叫了“ 3”。
困难之处在于\“ parent \”(引导加载程序)AppDomain不知道何时更新和重新启动子AppDomain,但是我无法弄清楚子级如何能够干净地通知父级,然后卸载。
有什么想法吗?
没有找到相关结果
已邀请:
1 个回复
眠缝