我们有一个主应用程序(Winforms),其中引用了几个包含逻辑和 UI 层的 dll。在对如何在 winforms 应用程序中执行自动更新进行了一些研究之后,我找到了使用 AppDomain 和 ShadowCopies 功能的解决方案。另一个可执行文件查找更新并交换文件。
好的,但是现在,我遇到了以下情况:
- 我启动主应用程序(通过新的 AppDomain 加载)。
- 我打开一个在引用的 dll(“ReferenceA”)中的表单。此 dll 是从副本中复制和实例化的。(伟大的!)
- 此时系统接收到新版本“ReferenceA”和“ReferenceB”的更新,并进行文件交换。
- 我打开“ReferenceB”中的另一个表单。此 dll 是从副本中复制和实例化的,但此 dll 还引用了 ShadowCopy 未更新的“ReferenceA”,因为它已经在目录中。
- 现在系统正在运行新版本的“ReferenceB”和旧版本的“ReferenceA”。在我的测试中,我在“ReferenceA”中创建了一个新方法,然后我显然得到了消息:“找不到方法”。
关于如何解决这个问题的任何建议?