Creating Universal Transforms

<< Click to Display Table of Contents >>

RayPack > 7.3 u6 > User Guide > Advanced Topics 

Creating Universal Transforms

By default, Windows Installer engine validates MST transforms before applying them to a base MSI image. More specifically, the minimum criteria listed below are checked.

 

The transform does not add an already existing table.

The transform does not remove non-existing tables.

The transform does not add an already existing row.

The transform does not remove non-existing rows.

The transform does not edit non-existing rows.

The transform does not change the code page.

Additional validation rules, for example matching product name, language or version can be also enforced.

 

The default validation rules make it difficult to create a transform that can be applied to any MSI. For example, a transform that adds a property ALLUSERS = 2 works with packages that do not have it, but will fail if the package already contains it. The solution to that problem is to create a universal transform, which involves the following.

 

The content of the transform needs to be planned carefully and changes that may behave incorrectly and / or are dependent on any existing package structure should be avoided. For example, the new content should be added to a new hidden feature instead of an existing one, existing components should not be reused etc.

All possible errors should be suppressed and product validation should be disabled before the transform is generated.

 

finger1

Be aware:

A universal transform is a quick solution to a content which must be present in all packages, also those coming from vendors. RayPack offers more flexibility by utilizing a concept of RPMST templates, which are even more flexible and provide a basic parametrization. Read more about how to use them in section Transform templates.

 

In order to create an universal transform, make sure that RayPack configuration is correctly set up. In PackDesigner MST settings, disable the following MST errors:

 

40mstVal2

 

Adding existing row (checked)

Deleting missing rows (checked)

Adding existing tables (checked)

Deleting missing tables (checked)

Modifying missing rows (checked)

Changing code page (checked)

 

Also, make sure the following validation rules are unchecked:

 

Same language (unchecked)

Same product (unchecked)

Same UpgradeCode (unchecked)

Validate ProductVersion (unchecked)

 

Save the configuration after making any changes. From now on, MST transforms produced by RayPack will be "universal", that means they will be applicable to any valid Windows Installer database.