msi: Don't ignore disabled components when resolving install states.
Otherwise features are not published correctly.
This commit is contained in:
parent
a9efbf8926
commit
34b9e4c20f
@ -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));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user