我正在为客户电脑编写一套程序--
我需要能够发布这些程序的更新版本,并使客户端PC自动和透明(没有用户交互)更新自己。此更新将在不可靠的3G连接(EvDO)上完成。应用程序将持续运行,因此更新必须优雅地关闭服务/关闭应用程序,然后在更新后再将它们旋转。
在我花时间讨论我自己的解决方案之前,是否有任何类似的解决方案?
注意:由于Windows以及其他几个原因,ClickOnce在这里无法工作。我也不能利用BITS,因为我运行的是Windows,它缺少IIS插件。
发布于 2010-10-04 02:38:51
为什么不考虑影子复制。
影子复制使应用程序域中使用的程序集能够在不卸载应用程序域的情况下进行更新。这对于必须连续使用的应用程序(如ASP.NET站点)尤其有用。
使程序变得非常简单。然后让他们监视(FileWatcher)从哪里加载的文件夹的更新(以及传递更新的位置)。然后动态地重新加载AppDomain。
有关更多信息,请参见这里和这里。
您可以使用AppDomainSetup类的属性(如下所示)来配置用于影子复制的应用程序域: 通过将ShadowCopyFiles属性设置为字符串值"true“来启用影子复制。默认情况下,此设置将导致应用程序路径中的所有程序集在加载之前被复制到下载缓存中。这是由公共语言运行库维护以存储下载的文件的相同缓存.
发布于 2010-10-04 07:22:42
我遇到了两个最好的资源(这两个资源都使用位,它可以处理不可靠的连接)。
https://stackoverflow.com/questions/3852486
复制相似问题