【问题标题】:Creating an automatic client/server updater创建自动客户端/服务器更新程序
【发布时间】:2026-01-26 11:40:02
【问题描述】:

我为我的一个应用程序创建了一个自动应用程序更新程序。这是一个两部分的应用程序。第一部分是版本检查器和更新下载器。第二部分安装下载的更新(以便更新程序可以自我更新)。

这在独立应用程序上运行良好。他们拥有更新程序的快捷方式,而不是用户拥有应用程序的快捷方式。如果更新程序找到更新,则下载、安装更新,然后重新启动更新程序。如果未找到更新,则启动用户所需的应用程序。

我现在需要为客户端\服务器应用程序创建更新过程。客户端仍然可以使用与上述相同的过程。但是,服务器不能,因为某些需要更新的文件可能正在被客户端使用。我已经考虑了几天了,只提出了两个想法,我都不喜欢。

第一个想法是最简单的,在服务器重新启动时(在客户端连接之前)运行服务器更新。我知道服务器每天至少会在午夜左右重新启动一次。重新启动将硬断开所有仍连接的客户端,因此文件不应再使用。

第二个想法是在需要更新时在服务器上创建某种繁忙标志。当忙标志存在时,客户端不能运行。我看到的问题是检查标志。客户端可以在服务器设置标志的同时检查。

我应该如何进行?您将如何实施服务器更新?想法、cmets、问题?

【问题讨论】:

    标签: .net client-server auto-update


    【解决方案1】:

    如果并非总是有客户端连接到服务器,您可以检查更新,必要时下载它们,然后等到没有客户端连接(或下次重新启动,以先到者为准)安装它。

    如果更新优先于客户端连接(它似乎不是基于您的问题),您可以强制关闭所有连接并更新。您还可以向已连接的客户端发送消息,让他们知道为什么要断开连接。甚至可能给他们 5 分钟的时间来保存他们的工作并在服务器重新启动之前注销。

    【讨论】:

      最近更新 更多