desktop-application - 自动更新的最佳实践

标签 desktop-application auto-update

对于基于桌面的应用程序,执行自动更新的最佳做法是什么?目前,我们下载所有文件,然后复制并注册(如果是 com dll)到它们各自的目录。

我查看了 Google Chrome 更新方法。它似乎首先将压缩文件下载到目录中,然后解压缩所有文件。此外,他们有一个似乎用于进行更新的设置应用程序。此外,他们创建了一个映射到更新版本的目录,如 1.0.154.43,但他们保留旧版本的目录。

最佳答案

几个提示:

  • 不管你选择怎么做,请不要创建一个新的服务或进程来检查更新,然后让它持续打开 .你知道,就像 Adob​​e 和 Sun(针对 Java)一样。不管你在做什么,我可以保证它不够重要,以至于每次用户启动计算机时都需要更新它。更新应该与操作系统通用的标准化更新过程集成,或者在应用程序运行时集成。默认情况下,更新不应持续窃取系统资源或减慢启动过程。
  • 如果您为每个版本维护单独的目录,则需要添加代码来维护它。磁盘空间并非旨在插入更新。我记得一个 Citrix 应用程序在我的计算机上一次有 5 个不同的版本。 用户不应看到超过两个副本 (最多一个备份,确认功能正常)您的应用程序在他们的文件系统上,除非他们明确地将它们放在那里。当文件夹位置发生这样的变化时,应用程序的快捷方式可能会过时,所以要小心。
  • 如果您在程序启动后更新,我会推荐 以不突兀的方式通知用户 .如果更新不会导致功能发生重大变化,请在后台下载更新,下次执行应用程序时切换到新版本,并通知用户重大更改(不要使用模态对话框或窃取重点)。不要让用户在启动应用程序之前单击按钮同意安装更新,或强制他们重新启动以使用更新的版本。允许用户配置自动更新,然后在不影响他们的工作效率的情况下进行。 Firefox 在这方面相当糟糕,这很可悲,因为它是许多用户不可或缺的应用程序。
  • 不要触摸系统托盘 .这应该保留给有用的(对用户)应用程序。我也建议不要使用气球通知。使用浏览器中常见的信息栏之类的东西。 Microsoft 应用程序在使用系统托盘和气球通知来浪费用户时间与不重要的通知方面特别糟糕。如果用户启用了自动更新,他们真的不需要知道一切都按他们预期的那样工作。当有新的或有用的东西时告诉他们,不要强制他们接受这些知识。将更改日志留在帮助菜单项下,以便他们自己检查错误修复。
  • 如果您部署默认配置文件,请小心使用 MSI 系统进行更新。 您不想覆盖更新中的任何用户文件 .同样,如果配置文件或用户文件的格式发生变化,您应该提供一种机制来自动备份和升级这些文件。或者开始在应用程序内部构建默认设置,而不是部署它们。
  • 有带宽意识 .大文件需要时间,并且可能需要用户计量带宽。特别是如果您每天更新。

  • 我无法立即记忆起真正的非侵入式更新程序,但我可以记忆起过去浪费了我的时间和资源的很多事情。不要成为制造另一个人的人。

    关于desktop-application - 自动更新的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/453005/

    相关文章:

    linux - 右键单击 "open with"选项在大多数 Linux GUI 中的行为如何?

    java - 如何存储简单的离线桌面应用程序的数据?

    java - Quaqua 主题占用大量内存

    Silverlight 3 浏览器外更新

    javascript - Electron 自动更新

    java - 如何在Java中实现自动更新?

    javascript - Golang 程序的 Electron 用户界面?

    java - static int 对于不同的进程是不一样的

    tomcat - 尝试使用 intellij 部署时服务器未连接

    Android Studio 更新到 1.0 失败