Patch Uninstall Custom Actions
You can use the Custom Action Patch Uninstall option to specify that the installer run the custom action only when a patch is uninstalled.
Windows Installer 4.5 and later: You can use the Custom Action Patch Uninstall Option to specify that the installer only run the custom action when a patch is uninstalled.
The Custom Action Patch Uninstall option is not available. There is no method for marking a custom action within a patch package to be run when the patch is uninstalled because the installer does not apply the patch packages being uninstalled.
To have a custom action run when a particular patch is uninstalled, the custom action must either be present in the original application or be in a patch for the product that is always applied.
Developers can use the MsiPatchRemovalList property to author a Windows Installer package or patch that performs custom actions on the removal of a patch. The custom action can be authored into the original installation package, a patch that has already been applied to the package, or a patch that is not an uninstallable patch. The custom action can be conditionalized on the MsiPatchRemovalList property in the sequence tables. See Using Properties in Conditional Statements for more information about conditionalizing actions.
The custom action can obtain the GUIDs of patches being removed from the value of the MsiPatchRemovalList property. The custom action can determine whether the installation state of the patch is applied, obsolete, or superseded by calling the MsiGetPatchInfoEx or the PatchProperty property of the Patch object.
If the custom action requires special metadata from the patch, the patch should contain a custom action that writes the metadata to a registry or file location when the patch is applied. The custom action in the original application or a patch that is always applied can obtain the information needed to remove the patch's changes.
Patches making changes that are difficult to undo correctly should not be marked as uninstallable patches.