版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。
在安装包制作过程中,安装包中增加一个或多个其他的第三方安装包是很常见的,尤其考虑到方便用户一次点击,全程安装,很多安装包做成一个大而全的综合包。
这样必然涉及安装包嵌套的问题,今天就以InstallShield下InstallScript,InstallScript MSI和Basic MSI三种工程类型为例,说明哪些工程类型的安装包可以嵌套调用。
说明:
1. 下面测试结果中, InstallScript和InstallScript MSI工程中在事件响应函数OnBegin里调用第三方安装包,Basic MSI调用第三方安装包位置在Sequence的InstallServices之后。
2. 测试环境InstallShield 2010
InstallScript:
InstallScript嵌套InstallScript -> OK
InstallScript嵌套InstallScript MSI -> OK
InstallScript嵌套Basic MSI -> OK
InstallScript MSI:
InstallScript MSI嵌套InstallScript MSI -> OK
InstallScript MSI嵌套InstallScript -> OK
InstallScript MSI嵌套Basic MSI -> OK
Basic MSI:
Basic MSI嵌套Basic MSI -> NG
Basic MSI嵌套InstallScript -> OK
Basic MSI嵌套InstallScript MSI -> OK
目前测试只有MSI包无法嵌套,原因是MSI都是通过Windows Installer服务安装,两个安装包无法运行在同一个进程中运行(等有了解决的方法再发布出来)。
正常会有如下提示“Error 1500 Another installation is in progress. You must complete that installation before continuing this one.”