当宣传当前正在运行的应用程序的 MSI 时会发生什么?

当宣传当前正在运行的应用程序的 MSI 时会发生什么?

我目前正在尝试设计一种用于监控和下载更新 MSI 的服务。该服务将在具有提升权限(例如 SYSTEM)的内置帐户下运行,并将下载和通告 MSI。

此 MSI 将更新已安装的应用程序。我了解快捷方式等会在广告中更新,但如果应用程序已在运行,会发生什么?如果用户从此快捷方式启动已在运行的应用程序的第二个实例,会发生什么?

答案1

这取决于 MSI 的编码方式。例如,使用 WiX,您必须实现自定义操作确定应用程序是否已在运行或文件是否已被锁定以进行写入。我思考如果您没有自定义操作,则 MSI 的默认操作是,如果它尝试写入已锁定以进行编辑的文件(就像应用程序运行时一样),它只会引发诸如“中止、重试、失败”(或类似的)的对话框。

为了处理许多众所周知的应用程序(例如 Skype、Firefox 等)能够妥善处理的极端情况(例如终止正在运行的实例),您必须实现自定义代码。裸露的 Windows 安装程序本身(如果您谈论的是通用的MSI 本身并不支持这样的功能。它提供的开箱即用功能很少,这也是 InstallShield 等产品存在的原因。

相关内容