msi: Fix the assembly actions to revert components to the installed state during rollback.

This commit is contained in:
Hans Leidekker 2011-05-25 10:39:11 +02:00 committed by Alexandre Julliard
parent 4cc6107a7b
commit 39b7ce6b82
1 changed files with 6 additions and 22 deletions

View File

@ -559,20 +559,12 @@ UINT ACTION_MsiPublishAssemblies( MSIPACKAGE *package )
if (!assembly || !comp->ComponentId) continue;
if (!comp->Enabled)
comp->Action = msi_get_component_action( package, comp );
if (comp->Action != INSTALLSTATE_LOCAL)
{
TRACE("component is disabled: %s\n", debugstr_w(comp->Component));
TRACE("component not scheduled for installation %s\n", debugstr_w(comp->Component));
continue;
}
if (comp->ActionRequest != INSTALLSTATE_LOCAL)
{
TRACE("Component not scheduled for installation: %s\n", debugstr_w(comp->Component));
comp->Action = comp->Installed;
continue;
}
comp->Action = INSTALLSTATE_LOCAL;
TRACE("publishing %s\n", debugstr_w(comp->Component));
CLSIDFromString( package->ProductCode, &guid );
@ -628,20 +620,12 @@ UINT ACTION_MsiUnpublishAssemblies( MSIPACKAGE *package )
if (!assembly || !comp->ComponentId) continue;
if (!comp->Enabled)
comp->Action = msi_get_component_action( package, comp );
if (comp->Action != INSTALLSTATE_ABSENT)
{
TRACE("component is disabled: %s\n", debugstr_w(comp->Component));
TRACE("component not scheduled for removal %s\n", debugstr_w(comp->Component));
continue;
}
if (comp->ActionRequest != INSTALLSTATE_ABSENT)
{
TRACE("Component not scheduled for removal: %s\n", debugstr_w(comp->Component));
comp->Action = comp->Installed;
continue;
}
comp->Action = INSTALLSTATE_ABSENT;
TRACE("unpublishing %s\n", debugstr_w(comp->Component));
win32 = assembly->attributes & msidbAssemblyAttributesWin32;