Hans Leidekker
bb40bebd2b
msi: Let the InstallFiles action determine which private assembly files to install.
2011-03-16 14:14:23 +01:00
Hans Leidekker
2df374ac35
msi: Fix a memory leak (valgrind).
2011-03-10 14:10:16 +01:00
Hans Leidekker
429407cfb6
msi: Assume a file is present if the target exists with the same size and there's no file version or hash to verify.
2011-03-08 12:31:04 +01:00
Hans Leidekker
be790cb0ad
msi: Load media info even if there's no file to install.
2011-03-08 12:30:55 +01:00
Hans Leidekker
4a6c63e24a
msi: Make a second pass to determine which files to install in the InstallFiles action.
...
This is needed because the target path can still change after CostFinalize
is executed. This happens in the .NET 1.1 Service Pack 1 installer where a
custom action calls SetTargetPath.
2011-03-08 12:30:49 +01:00
Hans Leidekker
3878c451ca
msi: Reduce filename to the long name in ITERATE_RemoveFiles.
2011-03-07 13:17:25 +01:00
Hans Leidekker
ba9f1f770a
msi: Get rid of msi_component_set_state and msi_feature_set_state.
2011-02-10 10:28:01 -06:00
Hans Leidekker
b96e5d21c6
msi: Split up resolve_folder.
2011-02-07 10:17:15 -06:00
Hans Leidekker
181beef870
msi: Try harder to remove non-persistent directories.
2011-02-02 14:09:14 +01:00
Hans Leidekker
bc13c7eb90
msi: Reset file attributes before removing a file.
2011-02-01 18:14:08 +01:00
Hans Leidekker
3ada9f2c08
msi: Downgrade a warning.
...
Unreferenced files are normal when applying a patch.
2011-01-19 12:32:44 +01:00
Hans Leidekker
6a0801a40a
msi: Don't extract files for assemblies which are already installed.
2011-01-11 16:05:46 +01:00
Hans Leidekker
a4de41f36b
msi: Install assemblies only if the component action request is set to INSTALLSTATE_LOCAL.
2010-11-18 12:37:04 +01:00
Hans Leidekker
7cd084d041
msi: Honor msidbComponentAttributesPermanent.
2010-11-16 11:48:08 +01:00
Hans Leidekker
b1b3252963
msi: Check component attributes before extracting the cabinet.
2010-11-16 11:48:04 +01:00
Hans Leidekker
9d46ba417e
msi: Don't use a temporary directory for local assemblies.
2010-11-12 16:59:24 +01:00
Hans Leidekker
b112d77126
msi: Honor msidbComponentAttributesNeverOverwrite.
2010-11-12 15:43:17 +01:00
Hans Leidekker
a23514eece
msi: Add support for installing side-by-side assemblies.
2010-11-11 12:23:06 +01:00
Hans Leidekker
eaa57c5b7b
msi: Compare strings without depending on thread locale.
2010-10-19 13:49:54 +02:00
Hans Leidekker
424e3a9fb8
msi: Move the component enabled check into the standard actions.
2010-07-21 13:24:00 +02:00
Hans Leidekker
15f5b9dca3
msi: Compare file versions as numbers instead of strings.
2010-06-11 15:54:24 +02:00
Hans Leidekker
b8ac327e7e
msi: Display the directory identifier instead of the full path in standard actions.
2010-06-09 16:15:52 +02:00
Hans Leidekker
5ecbc4f8ca
msi: Directly pass the disk id to installfiles_cb.
...
The MEDIAINFO structure is modified by the cabinet_next_cabinet
callback if there's a continuous cabinet in the installer.
2010-06-09 16:14:24 +02:00
Hans Leidekker
dcb501decd
msi: Create directories right before installing files.
2010-06-09 16:12:44 +02:00
Hans Leidekker
7a370c8d7b
msi: Consistently use the allocation macros.
2010-05-20 16:25:44 +02:00
Hans Leidekker
e60bf536eb
msi: Improve some traces.
2010-05-12 18:46:35 +02:00
Hans Leidekker
6475c11c1f
msi: Only extract a file when its disk id matches the media disk id.
...
This makes sure that an updated file is extracted from the cabinet stream
included in the patch, instead of the original source.
2010-05-12 18:46:32 +02:00
Gerald Pfeifer
effda58ad3
msi: Fix return value for ITERATE_RemoveFiles (in the error case).
2010-05-03 15:38:39 +02:00
Hans Leidekker
82fdc926a2
msi: Move all file comparisons to CostFinalize.
...
File costing can't be done correctly on upgrades unless we know
which files are going to be overwritten.
2010-04-28 15:04:40 -05:00
Hans Leidekker
186f4efa3f
msi: Make msi_get_property_int and friends take a pointer to a database instead of a package.
...
They only operate on a database and this way we can use them before a package is created.
2010-04-21 11:57:33 +02:00
Hans Leidekker
1407f1ee36
msi: Return the right error when a cabinet cannot be extracted.
2010-03-26 15:35:20 +01:00
Hans Leidekker
27e90274b5
msi: Set the action taken in the ProcessComponents and InstallFiles actions.
2010-03-23 13:24:26 +01:00
Hans Leidekker
73d316c58d
msi: Also update the UI when removing files listed in the RemoveFiles table.
2010-03-05 13:14:46 +01:00
Hans Leidekker
a358c7f6d4
msi: Update the UI in the MoveFiles action.
2010-03-05 13:14:23 +01:00
Hans Leidekker
aba6afc85e
msi: Move the implementation of the MoveFiles action to files.c.
2010-03-05 13:14:19 +01:00
Hans Leidekker
2666294f64
msi: Properly update the UI in the DuplicateFiles and RemoveDuplicateFiles actions.
2010-03-05 13:13:57 +01:00
Hans Leidekker
fd5887e5a9
msi: Remove empty directories as part of the RemoveFiles action.
2010-02-26 14:20:48 +01:00
Hans Leidekker
253a7fa73c
msi: Implement the RemoveDuplicateFiles standard action.
2010-02-23 13:31:01 +01:00
Hans Leidekker
598c542607
msi: Get rid of ACTION_VerifyComponentForAction.
2010-02-16 12:28:56 +01:00
André Hentschel
3299bfd471
msi: Fix crash with access to component.
2010-02-02 11:47:19 +01:00
Michael Martin
d28eabda5c
msi: Shedule rename operation also for ERROR_USER_MAPPED_FILE.
2009-11-20 14:37:09 +01:00
Hans Leidekker
843382f284
msi: Define common strings only once.
2009-10-15 14:16:50 +02:00
Hans Leidekker
9c8b83ce01
msi: Schedule a rename operation when the file to overwrite is in use.
2009-10-01 12:04:02 +02:00
Michael Stefaniuc
5f3ac30b3c
msi: Remove superfluous pointer casts.
2009-01-15 12:43:03 +01:00
Alexandre Julliard
0b99af82b2
msi: Don't include msvcrt headers.
2008-12-12 10:19:54 +01:00
James Hawkins
d15fddf6f5
msi: Resolve file source paths dynamically, as the source directory can be changed.
2008-10-07 12:13:33 +02:00
James Hawkins
765275a306
msi: Make sure read-only source files are set writable after being copied.
2008-09-08 12:47:22 +02:00
James Hawkins
472b991958
msi: Don't remove a misc file if the action is unknown.
2008-08-21 11:44:39 +02:00
James Hawkins
f909e1c06e
msi: Don't remove a file that is installed as source.
2008-08-21 11:44:19 +02:00
James Hawkins
b965a74ef2
msi: Downgrade an ERR to a TRACE.
2008-08-21 11:43:58 +02:00
James Hawkins
7b858882ac
msi: If the filename is empty or NULL, remove the directory.
2008-08-21 11:43:51 +02:00
James Hawkins
10a2a5effe
msi: Base removal of a file on the component's action, not the file's state.
2008-08-19 13:56:01 +02:00
James Hawkins
e64a699b07
msi: Remove misc files from the RemoveFile table.
2008-08-19 13:39:40 +02:00
James Hawkins
a00bdc1178
msi: A file's component's state does not determine file removal.
2008-08-19 13:39:30 +02:00
James Hawkins
f33ef6ac3b
msi: Don't remove a file if the old file is strictly newer than the version to be installed.
2008-08-19 13:39:19 +02:00
James Hawkins
ca4b17efe8
msi: Don't check for a NULL component, as the component is guaranteed to exist.
2008-08-19 13:39:11 +02:00
James Hawkins
74239fcd91
msi: Factor out media handling and use the new interface to efficiently extract assemblies.
2008-08-19 13:37:51 +02:00
James Hawkins
64a9e0f750
msi: msidbFileAttributesVital has no effect on the installation of files.
2008-07-22 13:10:21 +02:00
James Hawkins
4e467ad729
msi: Halt the installation with an error if a source file is missing.
2008-07-22 13:10:12 +02:00
James Hawkins
89a8cfdb53
msi: Don't overwrite a file that has a greater or equal version to the source file.
2008-06-25 20:28:52 +02:00
James Hawkins
5538fa0290
msi: Publish media disks whether the drive type is removable or not.
2008-06-24 12:14:42 +02:00
James Hawkins
d3cc801da1
msi: Set the source path for uncompressed files when loading the file.
2008-06-11 11:27:15 +02:00
James Hawkins
77d259f46c
msi: Search the last used source if the cabinet to extract cannot be found.
2008-05-22 11:30:54 +02:00
James Hawkins
bfe07d1d07
msi: Add initial implementation of MsiPublishAssemblies.
2008-04-30 13:45:23 +02:00
James Hawkins
82517d6d67
msi: Set the install context based on the ALLUSERS property.
2008-04-07 11:27:10 +02:00
James Hawkins
e94b065df3
msi: Fix the type of the ID parameter of MsiSourceListEnumMediaDisks.
2008-03-20 14:27:35 +01:00
Ove Kaaven
be874f1a26
msi: Fix bug in handling of multivolume CAB files.
2008-03-07 10:52:11 +01:00
James Hawkins
bdbb7a0348
msi: Search existing published sources if the media cannot be found.
2008-02-26 11:20:46 +01:00
James Hawkins
7d10d1d2d0
msi: Store the media type and set the last used source type accordingly.
2008-02-26 11:20:27 +01:00
James Hawkins
d62bd166dc
msi: Remove setting a source list property that's in the wrong place.
2008-02-26 11:20:07 +01:00
James Hawkins
4d2cf7a44b
msi: Publish source information in the user-unmanaged context.
2008-02-26 11:20:02 +01:00
James Hawkins
ced64861f5
msi: dest_path refers to the directory prefix, not the entire file path.
2008-01-16 12:16:43 +01:00
James Hawkins
5352d099b4
msi: Create parent directories when duplicating files if they don't exist, with tests.
2008-01-07 12:16:56 +01:00
James Hawkins
b012c3366c
msi: Directly download mi->source now that SourceDir points to the URL.
2008-01-07 12:15:56 +01:00
James Hawkins
4b4f737bfc
msi: Only read an internal package if the file to install is compressed.
2008-01-07 12:14:43 +01:00
James Hawkins
d51ed8bd93
msi: Free the cabinet string on error.
2007-12-12 13:48:50 +01:00
James Hawkins
33a4fe19de
msi: Don't check for the media or cabinet if the cabinet is internal.
2007-11-29 13:37:13 +01:00
James Hawkins
ca9a4dc0d9
msi: Only check the volume label if it's different than the first media's volume label.
2007-11-26 12:28:24 +01:00
James Hawkins
4160722b07
msi: Check the destination file's hash and skip that file if the hash matches.
2007-11-26 12:28:15 +01:00
James Hawkins
075e84bd90
msi: Check the cabinet's full path for existence, not just the cabinet name.
2007-11-20 12:29:00 +01:00
James Hawkins
78eead93fd
msi: Don't check for a cabinet's existence if it's embedded in the package.
2007-11-19 12:55:36 +01:00
James Hawkins
4e9940990b
msi: Don't ignore the error returned by ready_media.
2007-11-15 12:48:29 +01:00
James Hawkins
b1507aee98
msi: Only check the presence of the cabinet if the file is compressed.
2007-11-15 12:48:18 +01:00
James Hawkins
bb747e4fbe
msi: Simplify ready_media.
2007-11-15 12:47:59 +01:00
James Hawkins
5606428a71
msi: Set media info strings to NULL after freeing them.
2007-10-23 18:05:32 +02:00
James Hawkins
5e46fc9019
msi: Delay publishing of the SourceList until the PublishProduct action.
2007-07-03 13:43:20 +02:00
James Hawkins
71d7da1170
msi: Fetch the volume name when getting disk info.
2007-06-26 11:56:47 +02:00
Rob Shearman
f533159bb6
msi: Only use the long name for the file source if the file has one.
2007-06-22 12:18:22 +02:00
James Hawkins
44649d2ff8
msi: Fall back to checking if the cab exists if the volume name doesn't match.
2007-05-30 11:48:51 +02:00
James Hawkins
1aa0082558
msi: Create the destination directory if it doesn't exist when duplicating files.
2007-05-30 11:48:40 +02:00
James Hawkins
666cfd1c03
msi: Only check the volume label for every media after the first disk.
2007-05-11 11:20:18 +02:00
James Hawkins
6eb7eadffa
msi: Check the volume name when changing media.
2007-05-09 12:07:01 +02:00
Rob Shearman
1b0b5f5699
msi: Provide UI action data for uncompressed files, not just compressed ones.
2007-04-13 11:42:46 +02:00
James Hawkins
7ef8428b5e
msi: Reset the is_extracted flag when every cabinet is loaded.
2007-04-12 16:18:08 +02:00
James Hawkins
8cedb218c3
msi: Load the folder property if available and requested.
2007-03-29 21:01:42 +02:00
James Hawkins
ba40c463d7
msi: Overwrite an existing read-only file when copying the install file.
2007-02-26 13:57:43 +01:00
James Hawkins
5b8282120a
msi: Don't skip files continued from a previous cabinet.
2007-02-08 13:01:40 +01:00
Misha Koshelev
d8b00a071d
msi: Make sure to ignore UI level flags in dialog and files as well.
2007-02-07 11:03:39 +01:00
James Hawkins
30577c253a
msi: Allow uncompressed files before compressed files in the same media.
2007-02-05 12:27:33 +01:00
James Hawkins
a64945baea
msi: Use mi->source if the source is not a full path.
2006-11-30 12:26:08 +01:00