Commit 39b7ce6b authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

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

parent 4cc6107a
...@@ -559,20 +559,12 @@ UINT ACTION_MsiPublishAssemblies( MSIPACKAGE *package ) ...@@ -559,20 +559,12 @@ UINT ACTION_MsiPublishAssemblies( MSIPACKAGE *package )
if (!assembly || !comp->ComponentId) continue; 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; 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)); TRACE("publishing %s\n", debugstr_w(comp->Component));
CLSIDFromString( package->ProductCode, &guid ); CLSIDFromString( package->ProductCode, &guid );
...@@ -628,20 +620,12 @@ UINT ACTION_MsiUnpublishAssemblies( MSIPACKAGE *package ) ...@@ -628,20 +620,12 @@ UINT ACTION_MsiUnpublishAssemblies( MSIPACKAGE *package )
if (!assembly || !comp->ComponentId) continue; 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; 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)); TRACE("unpublishing %s\n", debugstr_w(comp->Component));
win32 = assembly->attributes & msidbAssemblyAttributesWin32; win32 = assembly->attributes & msidbAssemblyAttributesWin32;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment