msi: Let the InstallFiles action determine which private assembly files to install.

This commit is contained in:
Hans Leidekker 2011-03-16 09:22:59 +01:00 committed by Alexandre Julliard
parent 12135acb70
commit bb40bebd2b
2 changed files with 6 additions and 3 deletions

View File

@ -282,8 +282,11 @@ MSIASSEMBLY *load_assembly( MSIPACKAGE *package, MSICOMPONENT *comp )
if (a->application)
{
FIXME("we should probably check the manifest file here\n");
a->installed = (msi_get_property_int( package->db, szInstalled, 0 ) != 0);
/* We can't check the manifest here because the target path may still change.
So we assume that the assembly is not installed and lean on the InstallFiles
action to determine which files need to be installed.
*/
a->installed = FALSE;
}
else
{

View File

@ -74,7 +74,7 @@ static msi_file_state calculate_install_state( MSIFILE *file )
TRACE("file %s is not scheduled for install\n", debugstr_w(file->File));
return msifs_skipped;
}
if ((comp->assembly && !comp->assembly->installed) ||
if ((comp->assembly && !comp->assembly->application && !comp->assembly->installed) ||
GetFileAttributesW( file->TargetPath ) == INVALID_FILE_ATTRIBUTES)
{
TRACE("file %s is missing\n", debugstr_w(file->File));