【问题标题】:Is it possible to run an MSI from an InstallShield Express Custom Action?是否可以从 InstallShield Express 自定义操作运行 MSI?
【发布时间】:2012-11-28 16:16:12
【问题描述】:

我正在使用 InstallShield Express Spring 2012 SP1。我想通过自定义操作运行 SQLLocalDb_x64.MSI。

是否可以通过 InstallShield Express 中的自定义操作运行 MSI?

【问题讨论】:

    标签: installshield localdb


    【解决方案1】:

    作为一般规则,您不能在另一个主 MSI 包中将 MSI 作为安装执行序列的自定义操作运行。 Windows Installer 不允许同时运行两个 MSI 程序包,因此您会收到错误消息。

    从另一个 MSI 有条件地启动 MSI 的标准方法是将其嵌入为链式包。

    可惜我没有使用InstallShield Express,所以不知道它是否支持链式包,一般商业版都有这个功能。

    【讨论】:

      【解决方案2】:

      我完全同意波格丹的观点,但有一个窍门。在 InstallFinalize 阶段之后,您可以在安装结束时从自定义操作中运行 msi。您可以使用以下 CA:
      InstallIntStd 226 SystemFolder msiexec.exe /passive /i "[SOURCEDIR]YourSetup.msi"
      其中:
      InstallIntStd自定义操作名称;
      226类型:EXE异步执行,不等待结果;
      SystemFoldermsiexec所在目录;
      msiexec.exe /passive /i "[SOURCEDIR]YourSetup.msi"启动字符串。

      【讨论】:

      • Igor = 非常感谢 - 我会试一试并发布结果。
      • Igor 场景中需要提及的一件重要事情。它可以工作,但仅适用于单个 MSI,即,如果您有 2 个或更多 MSI 软件包要安装,它们将几乎同时启动,导致安装失败。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多