我有一个WIX安装程序,需要启动其他4个安装程序。所有都在Exe文件中,但我们可能需要在MSI安装程序中添加其他文件。
经过大量研究,我得出的共识是使用引导程序,并链接子安装程序。但最后一篇文章我在最后发现了一条评论说:“但现在你可以使用自定义操作了。”
自定义操作的问题是,当选择立即模式时,它们都会在GUI启动之前运行。但是如果我使用“延迟”,则自定义操作无法访问大多数安装程序变量数据。所以我回到绘图板:我应该使用引导程序和链,还是只是以某种方式使用自定义操作?
任何建议都非常感谢。
答案 0 :(得分:3)
使用自定义操作调用其他安装程序的更多诅咒是Windows Installer一次只支持一次安装。因此,如果您的任何EXE解压缩到MSI,它们将在安装时失败,因为您的安装程序当前正在运行。
执行多个EXE安装的“正确”方法是使用引导程序。
当您拥有一个不使用Windows Installer的相对简单的第三方安装程序时,您可以执行调用其他安装程序的自定义操作的唯一位置。在这些情况下,您可以在InstallFinalize
和as deferred之前安排自定义操作use CustomActionData
,以传递您需要的任何信息。
延迟安装程序在提升的进程中运行,这通常是决定是延迟还是立即执行操作的决定性因素。您可以在安装之前或之后安排立即操作,但它只能以用户权限运行。