【问题标题】:Forced update to multiple clients强制更新多个客户端
【发布时间】:2015-10-27 22:51:15
【问题描述】:

我们正在开发一种 (WPF) 软件,该软件在每个客户端上作为独立应用程序运行,并连接到数据库服务器。您可以这样看:1 个数据库服务器 = 1 个客户 = dosens / 数百台连接到该数据库的客户端 PC。目前我们已经使用 WIX 制作了安装程序。

让我们考虑一下这种潜在情况:我们发布了一个新版本的软件,其中包含一些数据库架构更改。这意味着如果一个客户端安装新版本并更新数据库架构,所有其他客户端的软件都将无法正常运行。

那么,在这种情况下有哪些可用的更新选项?是否有类似从一个位置向所有客户端发布的强制更新?

【问题讨论】:

    标签: .net installation .net-4.5 auto-update


    【解决方案1】:

    我们有类似的更新要求。当对应用程序的更新与对数据库或存储过程的更改保持一致时,对数据库或存储过程的更改与更新的客户端应用程序之间的任何差异都可能导致错误。

    没有彻底检查数据库架构,如果它只是 SP 中的更改,您可以对您的 SP 进行版本化,并且只从更新的软件中调用新的 SP。

    因为我们的产品都部署在网络上,所以我们使用 ClickOnce 进行部署。我们手动运行代码来检查更新。为此,我们实际上读取了清单文件。我们更喜欢这种方法而不是在数据库上跟踪版本,因为它不需要我们维护版本控制。 (这就是 ClickOnce 的用途)

    我们在启动时运行版本检查。如果需要更新,我们会强制更新,并要求用户重新启动应用程序。

    【讨论】:

    • 问题是我们的应用程序并没有停止,它们不断地收集数据。那么,您如何确保所有这些都同时更新呢?在我看来,一个客户端可以重新启动应用程序,查看更新,然后启动更新过程,而所有其他客户端仍在运行。我不确定 ClickOnce 有什么优势,但编写应用更新检查非常容易,如果存在,则启动更新过程。
    • 这里的问题是#WHEN#:我们不能依赖时钟,因为不同 PC 上的时钟可能不会同步。我们也不能依靠互联网访问来检查时间。在所有机器上同时滚动更新非常重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 2012-02-29
    • 1970-01-01
    相关资源
    最近更新 更多