c#shadowcopy示例

时间:2013-03-22 16:00:32

标签: c# visual-studio-2010 shadow-copy appdomainsetup

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

我已经阅读了AppDomainSetup.ShadowCopyFiles,但我在尝试正确的步骤来完成我需要的工作时遇到了麻烦

问题是:

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

2 个答案:

答案 0 :(得分:1)

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

  1. 主应用程序查找更新并将更新文件下载到临时位置
  2. 主应用程序启动更新程序应用程序并自行终止
  3. Updater应用程序通过主应用程序文件复制更新文件
  4. 更新程序应用程序启动主应用程序并自行终止
  5. 显然,内置错误处理逻辑。但这是一般的想法。影子副本无处可去。

答案 1 :(得分:1)

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

请注意,您无法在默认AppDomain上启用卷影副本。这意味着您将需要一个将创建AppDomain的加载程序,并执行您的应用程序。请查看此answer,了解您需要采取的步骤以及简单的实施步骤。

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

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