Recommended Approach

ImportantAn Enterprise or higher project and license type is needed.

The easiest to implement approach is to follow our related Convert EXE(s) to MSI tutorial.

Answer

ImportantA Professional or higher project and license type is needed.

In order to exemplify the procedure, we will assume to wrap three .EXE installers "one.exe", "two.exe" and "three.exe" into a .MSI. Here are the steps:

1. In Product Details Tab (Product Details Page) under "Add or Remove Programs (Control Panel)" group, uncheck the "Register product with Windows Installer" option. We don't want the wrapper to appear in "Control Panel" -> "Add or Remove Programs" as an installed program.

2. Go to Files and Folders Page and add the .EXE installers in the "Application Folder".

3. Create a .BAT file (e.g. Your_File.bat) with the following content and add it in the Files and Folders Page:

%1
%2
%3

4.  In the Custom Actions Page add a "Launch file or open URL" custom action after the "Finish Execution" action group from "Install Execution Stage":

  • In the "General Properties" group on the right pane set the "Command" field to : "[#Your_File.bat]" "[#one.exe]" "[#two.exe]" "[#three.exe]"
  • Disable all options from the "Execution Options" group.
  • Enable only the "Install" option from the "Execute Sequence Condition" group.

NoteYou can create a similar custom action for uninstall as well.

TipOptionally, because this is a wrapper installer, in the Install Parameters Page, the interface can be switched to a limited view. Also, to get a starting point on hiding the .BAT command window, you can follow our related How do I hide the command window of a custom action? article.