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

Alexandre Julliard julliard at winehq.org
Wed Mar 16 12:22:36 CDT 2011


Module: wine
Branch: master
Commit: bb40bebd2b62a8a6e8dd8fdf34aa8a3908a91a24
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bb40bebd2b62a8a6e8dd8fdf34aa8a3908a91a24

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Wed Mar 16 09:22:59 2011 +0100

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

---

 dlls/msi/assembly.c |    7 +++++--
 dlls/msi/files.c    |    2 +-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/msi/assembly.c b/dlls/msi/assembly.c
index fcca6b8..ad5e3a5 100644
--- a/dlls/msi/assembly.c
+++ b/dlls/msi/assembly.c
@@ -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
     {
diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index 7f71d1a..1f61873 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -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));




More information about the wine-cvs mailing list