【发布时间】:2012-11-28 16:16:12
【问题描述】:
我正在使用 InstallShield Express Spring 2012 SP1。我想通过自定义操作运行 SQLLocalDb_x64.MSI。
是否可以通过 InstallShield Express 中的自定义操作运行 MSI?
【问题讨论】:
标签: installshield localdb
我正在使用 InstallShield Express Spring 2012 SP1。我想通过自定义操作运行 SQLLocalDb_x64.MSI。
是否可以通过 InstallShield Express 中的自定义操作运行 MSI?
【问题讨论】:
标签: installshield localdb
作为一般规则,您不能在另一个主 MSI 包中将 MSI 作为安装执行序列的自定义操作运行。 Windows Installer 不允许同时运行两个 MSI 程序包,因此您会收到错误消息。
从另一个 MSI 有条件地启动 MSI 的标准方法是将其嵌入为链式包。
可惜我没有使用InstallShield Express,所以不知道它是否支持链式包,一般商业版都有这个功能。
【讨论】:
我完全同意波格丹的观点,但有一个窍门。在 InstallFinalize 阶段之后,您可以在安装结束时从自定义操作中运行 msi。您可以使用以下 CA:InstallIntStd 226 SystemFolder msiexec.exe /passive /i "[SOURCEDIR]YourSetup.msi"
其中:InstallIntStd自定义操作名称;226类型:EXE异步执行,不等待结果;SystemFoldermsiexec所在目录;msiexec.exe /passive /i "[SOURCEDIR]YourSetup.msi"启动字符串。
【讨论】: