Commit Graph

222 Commits

Author SHA1 Message Date
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