0

除了部署几个文件(放在 .MSI 文件柜本身中)外,MSI 还需要生成一个用 Visual C++ 开发的自定义 exe。通过在 MSI 安装程序中实现自定义脚本来实现此自定义可执行文件生成要求。即使 MSI 的自定义脚本成功生成了自定义可执行文件,由于目标系统上缺少必要的系统库,操作系统也无法运行该 exe。安装 VC++ Redistributable Kit 是在目标系统上部署必要的系统库,因此该工具包应该作为目标系统中的已安装应用程序提供,以便自定义 exe 正确执行。由于此 VC++ Redist 套件是此自定义可执行文件的先决条件,我们正在考虑在生成自定义 exe 之前从 MSI 安装程序本身安装此 VC++ Redist 套件。我们通过用于生成自定义可执行文件的相同自定义脚本成功生成了 VC++ Redist Kit。MSI 执行完成后,我们可以在 Add/Remove Programs 列表中看到这个 VC++ Redist Kit。但问题是即使安装了此套件,自定义可执行文件也无法识别该套件的存在,因此自定义可执行文件仍然无法运行。您能否指导我们在 MSI 部署期间安装应用程序并制作已安装的应用程序 MSI 执行完成后,我们可以在 Add/Remove Programs 列表中看到这个 VC++ Redist Kit。但问题是即使安装了此套件,自定义可执行文件也无法识别该套件的存在,因此自定义可执行文件仍然无法运行。您能否指导我们在 MSI 部署期间安装应用程序并制作已安装的应用程序 MSI 执行完成后,我们可以在 Add/Remove Programs 列表中看到这个 VC++ Redist Kit。但问题是即使安装了此套件,自定义可执行文件也无法识别该套件的存在,因此自定义可执行文件仍然无法运行。您能否指导我们在 MSI 部署期间安装应用程序并制作已安装的应用程序完成后立即激活(无需等待 MSI 执行完成),以便 MSI 安装程序的其他子进程识别应用程序存在?

4

1 回答 1

0

要使用 MSI 安装可再发行组件,建议使用合并模块。正如您所做的那样,这比自定义操作要稳定得多。

要让新安装的应用程序识别可再发行组件,请确保您在安装过程的最后或非常接近时启动它,使用延迟自定义操作,以便系统中合并模块注册的 DLL 可用。

无法(推荐)通过 MSI 软件包使可再发行组件更早地在计算机上可用。您可以在启动主 MSI 之前使用引导程序将它们安装为先决条件,但这意味着您有一个 EXE 作为输出包,它将先决条件和主 MSI 包捆绑在一起。

于 2013-09-23T19:57:12.647 回答