msi: Don't ignore disabled components when resolving install states.

Otherwise features are not published correctly.
This commit is contained in:
Hans Leidekker 2011-01-19 12:05:31 +01:00 committed by Alexandre Julliard
parent a9efbf8926
commit 34b9e4c20f

View File

@ -1841,8 +1841,7 @@ static void ACTION_GetComponentInstallStates(MSIPACKAGE *package)
LIST_FOR_EACH_ENTRY(comp, &package->components, MSICOMPONENT, entry) LIST_FOR_EACH_ENTRY(comp, &package->components, MSICOMPONENT, entry)
{ {
if (!comp->Enabled || !comp->ComponentId) if (!comp->ComponentId) continue;
continue;
if (state != INSTALLSTATE_LOCAL && state != INSTALLSTATE_DEFAULT) if (state != INSTALLSTATE_LOCAL && state != INSTALLSTATE_DEFAULT)
comp->Installed = INSTALLSTATE_ABSENT; comp->Installed = INSTALLSTATE_ABSENT;
@ -2037,8 +2036,6 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
/* features with components that have compressed files are made local */ /* features with components that have compressed files are made local */
LIST_FOR_EACH_ENTRY( cl, &feature->Components, ComponentList, entry ) LIST_FOR_EACH_ENTRY( cl, &feature->Components, ComponentList, entry )
{ {
if (!cl->component->Enabled) continue;
if (cl->component->ForceLocalState && if (cl->component->ForceLocalState &&
feature->ActionRequest == INSTALLSTATE_SOURCE) feature->ActionRequest == INSTALLSTATE_SOURCE)
{ {
@ -2051,8 +2048,6 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
{ {
component = cl->component; component = cl->component;
if (!component->Enabled) continue;
switch (feature->ActionRequest) switch (feature->ActionRequest)
{ {
case INSTALLSTATE_ABSENT: case INSTALLSTATE_ABSENT:
@ -2083,8 +2078,6 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
LIST_FOR_EACH_ENTRY( component, &package->components, MSICOMPONENT, entry ) LIST_FOR_EACH_ENTRY( component, &package->components, MSICOMPONENT, entry )
{ {
if (!component->Enabled) continue;
/* check if it's local or source */ /* check if it's local or source */
if (!(component->Attributes & msidbComponentAttributesOptional) && if (!(component->Attributes & msidbComponentAttributesOptional) &&
(component->hasLocalFeature || component->hasSourceFeature)) (component->hasLocalFeature || component->hasSourceFeature))
@ -2123,8 +2116,6 @@ UINT MSI_SetFeatureStates(MSIPACKAGE *package)
LIST_FOR_EACH_ENTRY( component, &package->components, MSICOMPONENT, entry ) LIST_FOR_EACH_ENTRY( component, &package->components, MSICOMPONENT, entry )
{ {
if (!component->Enabled) continue;
if (component->ActionRequest == INSTALLSTATE_DEFAULT) if (component->ActionRequest == INSTALLSTATE_DEFAULT)
{ {
TRACE("%s was default, setting to local\n", debugstr_w(component->Component)); TRACE("%s was default, setting to local\n", debugstr_w(component->Component));