代码之家  ›  专栏  ›  技术社区  ›  David Pfeffer

自动更新C程序

  •  8
  • David Pfeffer  · 技术社区  · 14 年前

    我正在为客户机编写一套程序--

    • Windows服务
    • 用户空间Windows窗体应用程序

    我需要能够发布这些程序的更新版本,并让客户机PC自动、透明地(无需用户交互)自我更新。此更新将通过不可靠的3G连接(EVDO)完成。应用程序将持续运行,因此更新必须优雅地关闭服务/关闭应用程序,然后在更新后再次旋转它们。

    在我花时间滚动我自己的解决方案之前,有没有类似的解决方案?

    注: ClickOnce在这里不工作是因为Windows服务以及其他一些原因。我也不能利用bits,因为我正在运行的是WindowsAzure,它缺少bits-iis插件。

    2 回复  |  直到 10 年前
        1
  •  9
  •   2Yootz    10 年前

    为什么不考虑卷影复制呢?

    卷影复制使程序集 在应用程序域中用于 更新而不卸载 应用程序域。这是 对应用特别有用 必须持续可用, 例如ASP.NET网站。

    使程序非常简单。然后让他们监视(filewatcher)更新到加载它们的文件夹(以及发送更新的位置)。然后动态重新加载AppDomain。

    here here 更多信息。

    您可以使用 AppDomainSetup类如下 为配置应用程序域 影子复制:

    通过设置 字符串的shadowCopyFiles属性 值“真”。默认情况下,此设置 导致中的所有程序集 要复制到的应用程序路径 在加载缓存之前下载它们。 这是由 要存储的公共语言运行库 文件已下载…

        2
  •  2
  •   Keith Blows    14 年前