我正在为客户端PC编写一套程序 -
我需要能够发布这些程序的更新版本,并让客户端PC自动且透明地(无需用户交互)自行更新。此更新将通过不可靠的3G连接(EvDO)完成。应用程序将持续运行,因此更新必须正常关闭服务/关闭应用程序,然后在更新后再次将其重新启动。
在我花时间编写自己的解决方案之前,是否有任何类似的预先存在的解决方案?
注意:由于Windows服务以及其他一些原因,ClickOnce在此处不起作用。我也无法利用BITS,因为我正在使用缺少BITS IIS插件的Windows Azure。
答案 0 :(得分:9)
为什么不考虑卷影副本。
卷影复制可以启用程序集 用于应用程序域 无需卸载即可更新 应用领域。这是 对应用程序特别有用 必须连续可用, 例如ASP.NET站点。
使程序非常简单的shell。然后让他们观察(FileWatcher)更新加载它们的文件夹(以及传递更新的位置)。然后动态重新加载AppDomain。
您可以使用的属性 AppDomainSetup类如下 为其配置应用程序域 影子复制:
通过设置启用阴影复制 ShadowCopyFiles属性为字符串 价值“真实”。默认情况下,此设置 导致所有组件 要复制到的应用程序路径 在加载之前下载缓存。 这是由维护的相同缓存 要存储的公共语言运行库 下载的文件...
答案 1 :(得分:2)