msi: Check file state before installing global assemblies.
This commit is contained in:
parent
19e51936e0
commit
c66f9bef60
|
@ -340,7 +340,6 @@ WCHAR *msi_resolve_file_source( MSIPACKAGE *package, MSIFILE *file )
|
||||||
UINT ACTION_InstallFiles(MSIPACKAGE *package)
|
UINT ACTION_InstallFiles(MSIPACKAGE *package)
|
||||||
{
|
{
|
||||||
MSIMEDIAINFO *mi;
|
MSIMEDIAINFO *mi;
|
||||||
MSICOMPONENT *comp;
|
|
||||||
UINT rc = ERROR_SUCCESS;
|
UINT rc = ERROR_SUCCESS;
|
||||||
MSIFILE *file;
|
MSIFILE *file;
|
||||||
|
|
||||||
|
@ -418,18 +417,19 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package)
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LIST_FOR_EACH_ENTRY( comp, &package->components, MSICOMPONENT, entry )
|
LIST_FOR_EACH_ENTRY( file, &package->files, MSIFILE, entry )
|
||||||
{
|
{
|
||||||
comp->Action = msi_get_component_action( package, comp );
|
MSICOMPONENT *comp = file->Component;
|
||||||
if (comp->Action == INSTALLSTATE_LOCAL && comp->assembly && !comp->assembly->installed)
|
|
||||||
|
if (!comp->assembly || (file->state != msifs_missing && file->state != msifs_overwrite))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
rc = msi_install_assembly( package, comp );
|
||||||
|
if (rc != ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
rc = msi_install_assembly( package, comp );
|
ERR("Failed to install assembly\n");
|
||||||
if (rc != ERROR_SUCCESS)
|
rc = ERROR_INSTALL_FAILURE;
|
||||||
{
|
break;
|
||||||
ERR("Failed to install assembly\n");
|
|
||||||
rc = ERROR_INSTALL_FAILURE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue