0

我还需要使用链接的 dll 更新我的可执行文件。

我已经阅读了有关AppDomainSetup.ShadowCopyFiles但我在尝试正确的步骤来做我需要的事情时遇到了麻烦

问题是:

  • 只有在通知更新或每次启动可执行文件时才需要创建卷影副本?
  • 复制和更新 dll 和 .exe 的正确步骤是什么?
4

2 回答 2

2

创建卷影副本不会更新您的应用程序。自动更新的一般顺序需要管理该过程的第三个应用程序。它看起来像这样。

  1. 主应用程序找到更新并将更新文件下载到临时位置
  2. 主应用程序启动更新程序应用程序并自行终止
  3. 更新程序应用程序将更新文件复制到主应用程序文件上
  4. 更新程序应用程序启动主应用程序并自行终止

显然,这将内置错误处理逻辑。但这是一般的想法。影子副本不在那里。

于 2013-03-22T16:06:56.193 回答
1

利用 .NET 的卷影复制功能并不是一个坏主意。它将允许您更新程序集而无需退出应用程序但您需要重新启动应用程序才能运行更新的版本。卷影副本只会让您覆盖程序集,而不是其他任何东西。

请注意,您不能在默认设置上启用卷影复制AppDomain。这意味着您将需要一个加载程序来创建AppDomain并执行您的应用程序。查看此答案以了解您需要采取的步骤和简单的实施。

如果您想要做的只是允许安装更新而不必退出应用程序,那么这是我能想到的最简单的方法。

您还应该看看 Microsoft 的ClickOnce技术。它解决了部署和更新 .NET GUI 应用程序的许多常见问题。

于 2013-03-24T18:47:21.273 回答