[1/5] msi: Fix the assembly actions to revert components to the installed state during rollback.
Hans Leidekker
hans at codeweavers.com
Wed May 25 03:39:11 CDT 2011
---
dlls/msi/assembly.c | 28 ++++++----------------------
1 files changed, 6 insertions(+), 22 deletions(-)
diff --git a/dlls/msi/assembly.c b/dlls/msi/assembly.c
index 2beb005..806f89e 100644
--- a/dlls/msi/assembly.c
+++ b/dlls/msi/assembly.c
@@ -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;
--
1.7.4.1
More information about the wine-patches
mailing list