我正在使用InstallShield Express Spring 2012 SP1。我想从自定义操作中运行SQLLocalDb_x64.MSI。
是否可以从InstallShield Express中的自定义操作运行MSI?
答案 0 :(得分:1)
作为一般规则,您不能将MSI作为另一个主MSI包中的Install Execute Sequence的自定义操作运行。 Windows Installer不允许同时运行两个MSI程序包,因此您将收到错误消息。
从另一个MSI有条件地启动MSI的标准方法是将其作为链式包嵌入。
不幸的是我没有使用InstallShield Express,因此我不知道它是否支持链式软件包,通常这个功能在商业版中可用。
答案 1 :(得分:1)
我完全赞同波格丹,但有一招。您可以在InstallFinalize阶段之后的安装结束时从自定义操作运行msi。您可以使用以下CA:
InstallIntStd 226 SystemFolder msiexec.exe /passive /i "[SOURCEDIR]YourSetup.msi"
其中:
InstallIntStd
自定义操作的名称;
226
类型:EXE的异步执行,无需等待结果;
SystemFolder
msiexec所在的目录;
msiexec.exe /passive /i "[SOURCEDIR]YourSetup.msi"
启动字符串。