WiX 工具集在安装后执行自定义操作并等待完成

WiX toolset execute custom action after installation and wait for completion

我想执行我的 .exe 文件,它显示 MessageBox 并在单击“确定”后退出。 CustomAction 应该在安装完成后,但在显示 Finish 对话框之前执行。问题是,我无法将主安装程序 window 设置为等待单击“确定”按钮(Finish 对话框直接显示,因此主 window 可以在不单击“确定”的情况下完全关闭按钮)。 WiX 工具集版本:v3.10

产品源代码:

<Property Id="WixShellExecTarget" Value="[#ExeId]" />
<InstallExecuteSequence>
  <Custom Action="LaunchExe" After="InstallFinalize" />
</InstallExecuteSequence>
<CustomAction Id="LaunchExe" BinaryKey="WixCA" DllEntry="WixShellExec" Execute="immediate" Return="check" Impersonate="yes" />

组件源代码:

<Component Id="ExeId" Directory="APPLICATIONFOLDER" Guid="*">
  <File Id="ExeId" Source=".\ExeName.exe" KeyPath="yes" Checksum="yes" />
</Component>

好的,我设法 运行 了。结果代码是:

<InstallExecuteSequence>
  <Custom Action="LaunchExe" Before="InstallFinalize">NOT Installed AND NOT REMOVE</Custom>
  </InstallExecuteSequence>
<CustomAction Id="LaunchExe" FileKey="ExeId" ExeCommand="" Execute="deferred" Return="check" Impersonate="no" /> 

请注意,必须添加 NOT Installed AND NOT REMOVE 条件,因为 windows 无法卸载应用程序。