msi: Honor msidbComponentAttributesPermanent.

This commit is contained in:
Hans Leidekker 2010-11-16 09:07:07 +01:00 committed by Alexandre Julliard
parent b1b3252963
commit 7cd084d041

View File

@ -925,12 +925,6 @@ static UINT ITERATE_RemoveFiles(MSIRECORD *row, LPVOID param)
install_mode = MSI_RecordGetInteger(row, 5);
comp = get_loaded_component(package, component);
if (!comp)
{
ERR("Invalid component: %s\n", debugstr_w(component));
return ERROR_FUNCTION_FAILED;
}
if (!comp->Enabled)
{
TRACE("component is disabled\n");
@ -944,6 +938,12 @@ static UINT ITERATE_RemoveFiles(MSIRECORD *row, LPVOID param)
return ERROR_SUCCESS;
}
if (comp->Attributes & msidbComponentAttributesPermanent)
{
TRACE("permanent component, not removing file\n");
return ERROR_SUCCESS;
}
dir = msi_dup_property(package->db, dirprop);
if (!dir)
return ERROR_OUTOFMEMORY;
@ -1027,6 +1027,12 @@ UINT ACTION_RemoveFiles( MSIPACKAGE *package )
continue;
}
if (file->Component->Attributes & msidbComponentAttributesPermanent)
{
TRACE("permanent component, not removing file\n");
continue;
}
if (file->Version)
{
ver = msi_get_disk_file_version( file->TargetPath );