msi: Don't use a temporary directory for local assemblies.
Hans Leidekker
hans at codeweavers.com
Fri Nov 12 09:18:08 CST 2010
---
dlls/msi/action.c | 2 +-
dlls/msi/files.c | 10 ++++++----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index 6292f4f..5328193 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -2170,7 +2170,7 @@ static void set_target_path( MSIPACKAGE *package, MSIFILE *file )
TRACE("file %s is named %s\n", debugstr_w(file->File), debugstr_w(file->FileName));
msi_free( file->TargetPath );
- if (assembly)
+ if (assembly && !assembly->application)
{
if (!assembly->tempdir) assembly->tempdir = get_temp_dir();
file->TargetPath = build_directory_name( 2, assembly->tempdir, file->FileName );
diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index b3a6176..4dcf5bd 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -186,9 +186,10 @@ static BOOL installfiles_cb(MSIPACKAGE *package, LPCWSTR file, DWORD action,
return FALSE;
msi_file_update_ui(package, f, szInstallFiles);
- if (!f->Component->assembly)
+ if (!f->Component->assembly || f->Component->assembly->application)
+ {
msi_create_directory(package, f->Component->Directory);
-
+ }
*path = strdupW(f->TargetPath);
*attrs = f->Attributes;
}
@@ -268,9 +269,10 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package)
TRACE("copying %s to %s\n", debugstr_w(source), debugstr_w(file->TargetPath));
msi_file_update_ui(package, file, szInstallFiles);
- if (!file->Component->assembly)
+ if (!file->Component->assembly || file->Component->assembly->application)
+ {
msi_create_directory(package, file->Component->Directory);
-
+ }
rc = copy_install_file(package, file, source);
if (rc != ERROR_SUCCESS)
{
--
1.7.1
More information about the wine-patches
mailing list