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

6

我正在寻找一个标准的微软更新服务,可以自动更新客户机上的应用程序/服务。

是否存在类似于此的自动更新服务?

2个回答

5
更新: 部署技术和Windows安装程序的优势(仅为交叉引用)。

ClickOnce:我不知道是否有任何标准的 Microsoft 功能来自动更新 MSI 安装。另一种(基本上已经过时的)部署技术 ClickOnce 具有一些自动更新功能。我从未真正使用过这项技术。我认为 PhilDW 用过它。

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

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

MSIX:简要提到了 MSIX——这是微软基于之前的 AppX 格式(而不是 AppV——很容易混淆)开发的新式部署技术。也许可以查看 Bogdan Mitrache 对 MSIX 的概述描述。对于 MSIX 可用的自动更新功能我还不清楚(更新:请参考 Bogdan 的回答)。下面还添加了另一个链接,其中包含详尽的指南:

更新: MSIX 教程:一份详尽的 24 章指南 (同样作者为Bogdan Mitrache)。

第三方部署工具:商业部署工具例如Advanced Installer 以及(我认为)Installshield 具有支持MSI自动更新的功能,该功能内置于其工具中(半自动更新)。由于我没有使用这些功能,因此并不清楚确切的技术和概念细节和限制。我认为Advanced Installer可以让您指向自己的站点,但我不确定Installshield会做什么。主要MSI工具的快速、一般性的临时概述

自制?:我曾经在一个产品中实现了一个更新检查功能,方法是让应用程序将当前安装的MSI文件的产品代码发送到公司网站上一个非常简单的数据库中。该数据库中有关于最新版本升级的信息,并在浏览器中提供直接下载链接。你可以直接让你的应用程序进行这种检查,但我们更喜欢通过浏览器来避开任何防火墙和代理问题,使其成为一个标准的Web页面查询(URL中嵌入产品GUID)。该检查可从产品的帮助菜单中调用。注意:如果你使用这种功能,请确保将其禁用于非管理员用户,并且最好能通过组策略来禁用 - 或者只需在HKLM(计算机)注册表中设置一个标志位。企业需要为终端用户禁用此类功能,尤其是那些受控包分发和锁定环境的企业。这非常重要!如果软件不符合这些基本的企业要求,可能会被拒绝使用(竞争产品可能支持此功能)。


一些链接:


4
作为对Stein答案的跟进。
MSIX:这仍然是热门话题,你的大多数用户可能从未听说过它,因此我的建议是仅出于研发目的处理它。
只是确认Stein的答案,auto-updates for MSIX/AppX包有支持。实际上,Advanced Installer的最新版本可以构建MSIX/AppX包,并利用此支持。
第三方工具:如果您想将应用程序部署到Windows 7和Windows 10用户,请使用旧的MSI。
就像Stein提到的那样,市场上大多数专业第三方工具都提供了自动更新程序,您可以很快地将其集成到应用程序中。使用Advanced Installer,这非常简单(或者我们希望是这样的 :))。使用我们的更新程序,您可以让用户手动检查更新,通过创建一个简单的快捷方式来启动它,或者按计划进行(Advanced Installer将创建一个计划任务),甚至可以直接从应用程序中调用它
除非您有很多时间,并且喜欢让用户感到不满意,否则我不建议您构建自己的更新程序。听起来很简单,但很容易变得复杂,对于您和您的用户来说(那些遇到您的错误或限制的用户)。 免责声明:如果还不清楚,我在负责开发Advanced Installer的团队中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接