c#影子复制的例子
本文关键字:复制 影子 | 更新日期: 2023-09-27 18:05:33
我需要更新我的可执行文件也与dll链接..
我已经阅读了AppDomainSetup.ShadowCopyFiles
,但是我在尝试正确的步骤来做我需要的事情时遇到了麻烦
问题是:
- 仅在通知更新或每次启动可执行文件时需要创建的影子副本?
- 复制和更新dll和.exe的正确步骤是什么?
创建影子副本不会更新您的应用程序。自动更新的一般顺序需要第三个应用程序来管理该流程。它看起来像这样。
- 主程序查找更新并下载更新文件到临时位置
- 主应用程序启动更新程序并终止自身
- 更新程序将更新文件复制到主应用程序文件
- 更新程序启动主应用程序并终止自身
显然会有错误处理逻辑内置到这个。但这就是总体思路。
利用。net的影子复制特性并不是一个坏主意。它允许您在不退出应用程序的情况下更新程序集,但是您需要重新启动应用程序才能运行更新后的版本。影子复制只允许您覆盖程序集,而不允许其他操作。
请注意,您不能在默认的AppDomain
上启用影子复制。这意味着您需要一个加载器来创建AppDomain
,并执行您的应用程序。看看这个答案,你需要采取的步骤和一个简单的实现。
如果你想做的是允许更新安装而不必退出应用程序,那么这是我能想到的最简单的方法。
你应该看看微软的ClickOnce技术。它解决了部署和更新。net GUI应用程序的许多常见问题。