0

我正在使用 WIX,并已成功使用自定义操作在安装程序末尾执行安装的文件,如下所示:

<CustomAction Id="LaunchAfterInstall" FileKey="foobar.exe" ExeCommand="parameters" Execute="immediate" Impersonate="yes" Return="asyncNoWait" />

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION"/>

<UIRef Id="WixUI_InstallDir" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch Foobar." />
<UI>
    <Publish Dialog="ExitDialog" Control="Finish" Order="1" Event="DoAction" Value="LaunchAfterInstall">WIXUI_EXITDIALOGOPTIONALCHECKBOX</Publish>
</UI>

当 foobar.exe 位于同一个 wxs 文件的组件中时,这很有效。但是我真正想要的是执行一个由合并模块安装的文件。我该怎么做呢?

如果这有帮助,我可以在合并模块中进行更改。

4

2 回答 2

0

我更改了操作以解决我的问题:

<CustomAction Id="LaunchAfterInstall" Directory="INSTALLLOCATION" ExeCommand="[INSTALLLOCATION]\foobar.exe" Execute="immediate" Impersonate="yes" Return="asyncNoWait" />
于 2009-09-22T13:53:25.537 回答
0

您也可以在构建完成后打开 Orca 或您的 MSI 中的 Merge Module(即 Merge Module 已被合并)并查找 File.Id。然后在 CustomAction 中使用 File.Id。

理想情况下,尽管 MSI 不应引用合并模块内的内容,因为合并模块应该是独立的。我很感激它并不总是这样。:)

于 2009-09-22T14:20:45.313 回答