ConfigureEventManifestRegister schedules all of the RegisterEventManifest and RollbackRegisterEventManifest actions on a maintenance isntallation (REINSTALL set), however ConfigureEventManifestUnregister does not schedule any actions.
If the maintenance (IE: repair) installation fails (the user presses cancel for example) the sytem should be left in the same state it was before the maintenance installation: product installed. Instead all of the event manifests have been uninstalled from the system.
The proper fix for this would be to schedule all of the ConfigureEventManifestUnregister actions on a maintainance installation. This fixes the problem and ensures that on a patch event manifests will be re-registered:
ConfigureEventManifestUnregister:
if (!WcaIsUninstalling(isInstalled, isAction))
{
continue;
}
Can be changed to
if (!WcaIsUninstalling(isInstalled, isAction) && !WcaIsReInstalling(isInstalled, isAction))
{
continue;
}
An alternative solution is to not run any of the RegisterEventManifest actions on a maintainence install, but this will prevent the event manifests from being updated via patch or repair.
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 15 days (the time period specified by
the administrator of this Tracker).