1

我目前正在计划一个安装和更新方案,使用使用 Wix 创建的 MSI。初始安装将包括第三方驱动程序作为合并模块,这将需要提升的权限。

我们希望尽可能地自动化软件更新,因此会定期提供更新的 MSI 软件包。这些将在后台下载并在用户下次打开应用程序时安装。我们将实施流程以确保对驱动程序模块的更改不会包含在自动更新中。

如果没有更改,Windows Installer 会执行这些合并模块吗?这将对整个安装程序产生什么影响?为这些驱动程序创建一个单独的 MSI 以将它们与核心应用程序包完全隔离会更好吗?

4

1 回答 1

3

这里有一些背景信息可以帮助您理清思路。合并模块不会“执行”。事实上,一旦你构建了一个安装程序,它们就不再存在了。合并模块只是一个包含 MSI 表数据的数据库,这些数据在构建时会合并到您的 MSI 中。将其视为对组件和相关元数据集合的封装。它就像一个静态链接在 EXE 中的 C/C++ .LIB 文件。

因此,如果您的组件(来自 MSI 或来自 MSM)需要提升权限才能安装,则最终的 MSI 需要提升权限才能安装。

我过去已经完成了这个自动更新过程。您希望该进程具有提升的权限,并在下载 MSI 后将其“宣传”为托管的每台机器(我称之为“祝福”MSI )。这是使用 msiexec /jm foo.msi 命令完成的。然后向用户端进程发出信号以安装 MSI。如果创作正确,MSI 将自动提升,而不会向用户公开管理员权限。

于 2014-06-17T13:10:00.203 回答