自动升级基于 MSI 的应用程序的最佳实践是什么?

Aka*_*wal 3 windows-installer

我试图找到一个标准的 Microsoft 更新程序服务,它将自动更新客户机器上的应用程序/服务。

是否存在这样的自动更新程序服务?

Ste*_*mul 5

更新部署技术和 Windows 安装程序的好处(只是一个交叉引用)。


ClickOnce:我不知道自动更新 MSI 安装的任何标准 Microsoft 功能。另一种(几乎已经过时)部署技术ClickOnce具有一些自动更新功能。我从来没有将这项技术用于任何事情。我认为PhilDW已经使用了它。

MSI SDK:不会自动更新,但 MSI SDK 包含默认setup.exe包装器和基于 URL 的 Windows 安装程序安装示例。本质上是一种从 URL 调用安装的方法。大约 17 年前我尝试过它并放弃了它。

App-V:如果您在公司环境中,我想App-V应用程序流是一种选择 - 已部署应用程序的集中安装和管理。

MSIX:快速提及 MSIX - 一种来自 Microsoft 的新部署技术,基于以前的 AppX 格式(不是 AppV - 很多令人困惑)。也许可以查看 Bogdan Mitrache 对 MSIX 的摘要描述。我不清楚可用于 MSIX 的自动更新功能(更新:请参阅 Bogdan 的回答)。在下面添加了另一个链接到综合指南:

更新MSIX 教程:一个 24 章的综合指南(也由 编写Bogdan Mitrache)。

第三方部署工具:诸如Advanced Installer和(我认为) Installshield等商业部署工具具有支持内置于其工具中的 MSI 自动更新(半自动更新)的功能。由于我没有使用这些功能,因此我无法及时了解确切的技术和概念细节以及限制。我认为 Advanced Installer 可以让您指向自己的站点,但我不确定 Installshield 的作用。主要 MSI 工具的快速、通用的特别概述

自己动手?:我曾经通过让应用程序将当前安装的 MSI 文件的产品代码发送到公司网站上一个非常简单的数据库,在产品中实现了更新检查功能。该数据库包含有关要升级到的最新版本的信息,并将其作为浏览器中的直接下载链接提供。您可以让您的应用程序直接执行此检查,但我们更喜欢浏览器通过使其成为标准网页查找(嵌入在 URL 中的产品 G​​UID)来解决任何防火墙和代理问题。此检查可从产品的帮助菜单中调用。注意:如果您创建了这样的功能,请确保为非管理员用户禁用它并且理想情况下可以通过组策略禁用- 或者只是 HKLM 中的注册表标志。


一些链接