Wrapping vs. Repackaging

When it comes to creating an MSI package from an EXE, there are basically two different strategies you can choose from.

You can keep your EXE installer intact and wrap it in an MSI package. This is what the MSI Wrapper does. Alternatively, you can use a program that can record system changes and play them back. That is called repackaging.

Wrapping an Installer

When wrapping an installer, you put an MSI file around that installer. The original EXE installer is preserved in its original state. This also means that all the logic inside that installer is maintained. Having an MSI enables you to push that installation to other machines using Group Policy Objects (GPO) under Active Directory.

Repackaging

The technique behind repacking is that you start a program that will monitor and record system changes while it is running. Then you run the original EXE installer to the finish and stop the recording. All the recorded changes to the files system and registry are then written to an MSI file. Running the MSI on another machine will then replay these changes on that system.

Pros and Cons

The main advantage of wrapping compared to repackaging is that all computers are different in some way or another. Often the installers contain logic that make different decisions based on the state on the system where they are installed. This logic is lost in the repacking process where as the wrapping maintains that logic. Repacking is mostly used when the target system are very similar or the repackaged installers are extremely simple. Otherwise, wrapping is the preferred way.

One can argue that wrapping does not create "real" MSI packages. This is true in the sense that MSI installations were designed to be transactional. However, once the MSI packages contains scripting or other custom actions they often loose that ability anyway. Wrapping the EXE in such a way that it keeps its ability to uninstall and upgrade will often create a better result.

The MSI Wrapper was built because repackaging did not do the trick and there were no existing wrappers on the market that supported basic things such as uninstallation and upgrades.