Detection of Vendor MSI Setups

<< Click to Display Table of Contents >>

RayPack > 7.3 u6 > User Guide > PackBot > Processing and Overview 

Detection of Vendor MSI Setups

PackBot automatically detects vendor MSI installations. Many setups are prepackaged to a single container .exe file which acts merely as a wrapper and executes the actual Windows Installer database extracted to a temporary location. If this happens, repackaging to the MSI format is usually a bad choice, because it breaks the compatibility and upgrade possibilities of older vendor packages. In most cases, the recommended approach is to create a Windows Installer transform.

 

PackBot solves this problems in two ways which are automatically working under-the-hood without user intervention if a conversion to RCP or MSI format is requested.

 

All Conversions (Excluding App-V 4.6/5.x Using Sequencer)

For all conversions (but not the one requiring the Sequencer to run) RayPack monitors the background installations and detects Windows Installer sessions. Should an MSI setup be started during the repackaging (often implicitly, for example started by an executable wrapper) RayPack recognizes the installation and it sources and once the repackaging is over, these essentials files are copied and stored next to the actual project. For example, a content similar to the following is created when repackaging to the RCP format:

rcprepack

 

Aside of standard folders, the <ProjectName>_setup contains all original vendor MSI installations and their log files that were captured during repackaging.

 

papercliper

Note:

If converting to RCP format, it is possible to review vendor installations using the General > Original setups screen.

 

Conversion to MSI

If a project gets converted to the MSI format, then an extra logic is applied if there is at least one Windows Installer running as a part of the installation. The actual action done by PackBot depends on the Vendor MSI settings. There are two main actions that can be done with an original vendor MSI:

 

1.Disregard the original MSI and create a new repackaged MSI.

2.Create a transform that modifies the vendor MSI.

 

Both have slightly different use cases.

 

The original MSI should be disregarded and a fresh copy should be created if the setup that is repackaged is a so-called "wrapper MSI" which does not do anything on its own, but rather serves as a wrapper / host. If this is the case, creating a repackaged MSI is usually a better option, although it is somehow contradictory to Best Practises which say that the repackaging of Installer databases should be avoided.

An MST should be created if breaking internal structures and upgrade possibilities should be avoided. By only adding changed content via a relatively small MST file and supporting files those are kept untouched.

 

Because the use cases are different and cannot be always predicted before starting a setup, RayPack by default combines them and produces both options. For example, this is the result of repackaging Adobe Reader which is distributed as an executable setup, but is being installed using a "hidden" MSI:

 

acrobatrepack

 

The folder Repackaged contains a fresh new copy of repackaged MSI, and in the original folder there is a transform and CAB files containing additional source files. If a non-default setting was selected to convert to either only MSI or MST, then the files are stored directly in the project folder without any additional subfolders.

 

Of course, in this case taking MST as the result is the right choice - this way the upgrade logic of a product that is actually being installed as a native Windows Installer setup can be preserved.