Windows Installer Transforms will Override Patch Registry Values


A patch (.msp) may fail to update a registry key value if a transform(.mst) was applied to the main product.

More Information

The reason this occurs is due to the order that Windows Installer applies transforms and patch transforms. You cannot change the order in which a transform and a patch transform are applied to the msi. The transform that was applied with the base product will always be applied last which is why it will overwrite any values that the patch would have updated. This is expected behavior.

Scenario example:

·         Base msi installed
Registry key value is set to authored value as set in the registry table of the msi package. For example the registry might have an authored value set to "base"

·         Base msi plus the transform

Registry key value is updated by the applied transform. For example it might set the value to "transform" from the origina value "base"

·         Base msi plus transform followed up with a patch install

Registry key does not get updated with the value from the patch but remains at the value that the transform sets.
For example using the values shown above it would show the value as “transform“ not the value that is authored into the patch

Work Around

Consider modifying registry values using patches not transforms. In this way the changes can be affected by using patch sequencing.


Article ID: 2461507 - Last Review: Nov 9, 2010 - Revision: 1