2

I'm trying to run several MSIs in series using Burn and for one of these MSIs I need to display the UI because the user has to select various install options.

<MsiPackage
  Id="SomeVisibleMsi"
  Name="$(var.SomeOtherProject.TargetName)-x86.msi"
  SourceFile="$(var.SomeOtherProject.TargetDir)\..\$(var.SomeOtherProject.TargetName)-x86.msi"
  InstallCondition="NOT VersionNT64"
  SuppressSignatureVerification="yes"
  Permanent="no"
  After="SomeOtherMsi_x86"
  DisplayInternalUI="yes"
  Vital="yes"
  Visible="yes"
  EnableFeatureSelection="yes">
</MsiPackage>

This installer also contains a deferred Custom Action that will display a message if some error occurs while the action is executing.

<CustomAction
  Id="MyCustomAction"
  BinaryKey="MyCustomAction.CA.dll"
  DllEntry="DoSomething"
  Execute="deferred"
  Return="check"
  Impersonate="no" />

The session.Message call in the custom action:

Record message = new Record();
message.FormatString = string.Format("MyCustomAction {0} - Uh oh, something went wrong.", DateTime.Now);
session.Message(InstallMessage.Warning | (InstallMessage)MessageButtons.OK, message);

The issue

The message displays correctly when running the MSI on it's own (blocking the install until OK is pressed). But when the MSI is started via Burn, the installer blocks when the call to display the message is made but the message box doesn't pop up. At this point the installer becomes unresponsive and the only way to terminate it is using task manager. Once terminated, control returns to the Burn Bootstrapper and the message box appears.

Have I configured something wrong here, or is this functionality simply not supported in WiX (session.Message when using DisplayInternalUI="yes")?

Syon
  • 7,205
  • 5
  • 36
  • 40

0 Answers0