gpt4 book ai didi

windows-installer - 自动更新 Windows 应用程序的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 05:29:14 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

5年前关闭。




Improve this question




Google Chrome 自动更新自身 every five hours .我想在我自己的应用程序中克隆这个确切的功能。在 Windows 上实现此功能的最佳方法是什么?

最佳答案

要复制此更新行为,您需要做两件事:

  • 定期检查更新的更新程序应用程序。如果找到更新,它应该自动安装它。大多数商业设置创作工具都包含良好的更新程序应用程序。您可以尝试自己编写更新程序,但这并不像听起来那么容易。
  • 每个产品版本的每用户安装。每用户安装仅在用户配置文件文件夹(AppData、Roaming 文件夹等)和 HKEY_CURRENT_USER 中写入数据。没有程序文件或 HKEY_LOCAL_MACHINE。

  • 需要按用户安装,以便您可以静默执行升级。如果安装是每台机器,较新的 Windows 版本将显示提升提示,用户将不知道发生了什么。

    更新程序

    一些更新程序使用服务。对于自动更新,这不是一个真正的解决方案,因为服务安装需要管理员权限。因此,您的安装过程和后续更新将显示提升提示。

    另一种方法是使用每用户更新程序应用程序。它不需要任何提升,可以安装在应用程序文件夹中。这种类型的更新程序可以作为计划任务运行,也可以从应用程序中运行(在应用程序启动时执行)。

    在这两种情况下,您都需要考虑更新程序可能需要自行更新。因此执行更新的进程必须是一个临时进程(例如更新程序应用程序的临时副本)。它也应该在没有高度的情况下运行。这就是为什么服务不是一个好主意的原因。它需要在更新前自行停止,使用处理更新的临时进程并在完成后重新启动。

    其他需要考虑的事项是:
  • 权限问题(如果更新过程需要任何权限或提升)
  • 下载地址
  • 更新检测机制(更新程序如何检测是否应该安装新版本)

  • 更新

    一个常见的误解是更新应该是应用程序文件(如主应用程序 EXE)。这种情况很少发生,因为更新可能需要覆盖的不仅仅是文件。

    大多数更新是安装包(例如 MSI)或补丁 (MSP)。这是最好的方法,因为它们处理整个更新逻辑:
  • 检测正在运行的应用程序
  • 更新资源
  • 更新产品信息(控制面板中的快捷方式、程序和功能小程序等)

  • 安装包还简化了更新程序应用程序。对于这种类型的更新,更新程序只需要检测可用更新、下载它们并执行它们。

    更新有两种方式:
  • major upgrades : 旧版本完全卸载再安装新版本
  • minor upgrades : 旧版本已打补丁

  • Windows Installer 对两者都有很好的支持,所以你可以使用 MSI packagesMSP patches .它还支持静默安装,因此您的更新程序所需要做的就是使用命令行参数执行包。

    这些软件包还通过 ALLUSERS 支持每用户或每台机器的安装。属性(property)。

    更新分发

    在您决定更新程序和一些更新包之后,您还需要一个分发机制:
  • 一种通知更新程序可用更新的方法(例如服务器上的更新信息文件)
  • 一种检测更新是否安装的方法(因此它只安装一次)

  • 所有这一切都不是很容易。这就是许多产品使用第三方更新程序的原因。甚至一些商业设置创作工具也为您的软件包提供更新程序。

    自定义更新程序主要由拥有大量产品的大型公司使用,因为投资对他们来说是值得的。

    关于windows-installer - 自动更新 Windows 应用程序的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7395609/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com