MST Transformation Files

MST files are used to transform the content of an MSI package. They are often used by administrators to customize the behavior of an existing MSI file. They use the MST files together with the original MSI package in their software distribution systems such as group policies.

You can also use MST files with wrapped executable installers. A common scenario is that you want to pass command line parameters to the wrapped installer. In order to do that you can create an MST file that adds the WRAPPED_ARGUMENTS property to the property table.

Tools such as Orca can be used to generate a MST file. The image below shows how you can add this property and insert extra command line arguments for the wrapped installer. In this example, we add a logging parameter for our test program built with Inno Setup.

After the MST is saved, we can test it from the command line.

msiexec /i setup_1.0.msi TRANSFORMS=mylog.mst

Remember to have your command line running as administrator if you want to run it silently with a /q. Otherwise, the elevation will most likely fail.

Exit Codes

The wrapped installers often return different exit codes. Exit codes typically say if the installation was a success or a failure.

When the MSI Wrapper looks at the exit code from the wrapped installer, it expects 0 (zero) to mean success and everything else a failure. However, sometimes the wrapped installer have multiple exit codes for success under different circumstances. It also happens that the exit code tells that the system needs to be rebooted before the installation is completed.

Starting with version 7 of the MSI Wrapper, you can map exit codes from the wrapped installer to different behavior in the MSI package. You can specify which exit codes represent a success and what which codes represent a pending reboot of the computer. This map is specified in the advanced settings.

The map is a comma-separated list of success exit codes or a map to code 3010, which signals a pending reboot.



This means that the exit codes 0 and 2 from the wrapped installer is a success. Exit code 11 signals a reboot.


Reboot exit codes vary between executable installers. It sometimes depends on the installer framework used to create the executable installer. In case your installer is built with the Inno Setup framework, it most likely supports the command line switches /NORESTART /RESTARTEXITCODE. When you use the MSI Wrapper it is recommended that you use the /NORESTART to prevent the wrapped installer to initiate the restart of the system. Instead you can wrap it with the switches /NORESTART and /RESTARTEXITCODE=1234. Then you can map the exit codes with 0,1234=3010 to make the MSI package detect the need to restart and pass that information on to the program that installs the MSI package.



This is a list of examples on how to use the MSI wrapper.


License Questions

Is the license per user, organization, or machine?

The license can be installed on one workstation. Many users are allowed to use the installation if only one user can be logged in. If the license is installed on a Terminal Server or Citrix Server then you need a license per user with access to the software.

Are there additional mandatory cost or subscriptions?


Is support and upgrades included with the license?

You get one year of free upgrades and support with the purchase of the license.

Do you have a return policy?

You will get a full refund within 30 days after the purchase if you are not happy with the product.

What is the delivery time?

The product is delivered minutes after the payment is cleared. It all happens automatically and online.

What is the delivery method and cost?

Products are delivered electronically via email. There are no delivery costs.

Technical Questions

Why do I have an instance of msiexec.exe in my task manager after installation?

The Windows Installer is a service. Before the first installation is started, you may not see msiexec.exe in your list of tasks in Tasks Manager. During installation, you will typically see multiple instances of msiexec.exe in the task list. Some of them are running in the context of the user who started the installation. Others are running as the SYSTEM user.

After the installation has ended, you normally see an instance of msiexec.exe owned by the SYSTEM user. This will most likely stay there until your machine is rebooted. This is normal behavior.

Can my MSI install silently if my wrapped setup cannot?

No. Your wrapped setup must support silent installation if the resulting MSI should be able to install without user interaction. 

Resellser Questions

Do you have a reseller program?

Yes. Please contact us for more information if you plan to resell our products.