7

我有一个在 WiX 3.6 中创建的 MSI,它显然安装了各种东西,并创建了一个指向我的 MSI 实际未安装的 exe 的快捷方式(我们确定 exe 位于特定文件夹中,因为它是由单独的MSI,这是我的 MSI 所需的先决条件)。我们创建的快捷方式传递了一些参数,这些参数实际上告诉 exe 使用我们刚刚安装的东西。这一切都很好,但我现在希望 MSI 使用我们在快捷方式中使用的相同参数自动运行 exe。

我尝试关注这篇文章 - http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/run_program_after_install.html但它假定您要运行刚刚安装的 exe 并且似乎不使用 exe 参数。

我还尝试使用自定义操作,例如 -

<CustomAction Id="RunMainApp"
          Directory="FREDFOLDER"
          ExeCommand="[FREDFOLDER]Fred.exe -SBDSingleApp -SBDSplash=&quot;MySplash.bmp&quot;"
          Execute="commit"
          Return="ignore"/>

<InstallExecuteSequence>
  <Custom Action="RunMainApp" Before="InstallFinalize" />
</InstallExecuteSequence>

这更有希望——它运行了 exe,但在实际安装完成之前这样做了——这显然是不正确的。

老实说,如果有第一个示例中的 UI,我并不担心 - 因为 90% 的时间 MSI 将在没有显示向导的情况下以安静模式运行。

4

1 回答 1

3

您是否尝试过将 Execute="commit" 更改为 Execute="deferred",这将使自定义操作在安装脚本运行后运行,而不是在安装过程完成后运行,对于后者,您将在执行上下文之外的安装。

于 2013-08-30T09:39:09.590 回答