1

我们有一个主应用程序(Winforms),其中引用了几个包含逻辑和 UI 层的 dll。在对如何在 winforms 应用程序中执行自动更新进行了一些研究之后,我找到了使用 AppDomain 和 ShadowCopies 功能的解决方案。另一个可执行文件查找更新并交换文件。

好的,但是现在,我遇到了以下情况:

  1. 我启动主应用程序(通过新的 AppDomain 加载)。
  2. 我打开一个在引用的 dll(“ReferenceA”)中的表单。此 dll 是从副本中复制和实例化的。(伟大的!)
  3. 此时系统接收到新版本“ReferenceA”和“ReferenceB”的更新,并进行文件交换。
  4. 我打开“ReferenceB”中的另一个表单。此 dll 是从副本中复制和实例化的,但此 dll 还引用了 ShadowCopy 未更新的“ReferenceA”,因为它已经在目录中。
  5. 现在系统正在运行新版本的“ReferenceB”和旧版本的“ReferenceA”。在我的测试中,我在“ReferenceA”中创建了一个新方法,然后我显然得到了消息:“找不到方法”。

关于如何解决这个问题的任何建议?

4

0 回答 0