Advanced Installer supports two ways of updating an already installed
application: Upgrades An upgrade is an uninstall of the previous version of the
application, followed by an install of the current version. Its
advantage is that is can be applied both on computers that have the
older version installed and that don't have it. Its main disadvatage
is size: it has to include the complete installation
package. Patches Patches are usually much smaller than upgrades, as they only
contain the diffs between the two versions of the product. However,
they can only be installed on computers that have the previous version
already installed. Because the application of a patch to a Windows Installer package results
in the installation of the original sources using a new MSI file, the
new MSI file must remain compatible with the layout of the original
source. This means that when authoring a patch package you have a
number of restrictions. - Do not change the primary keys in the File table between the
original and new MSI file versions.
- Do not move files from one folder to another.
- Do not move files from one cabinet to another.
- Do not change the order of files in a cabinet.
- Do not change the Component GUID for any Component.
- Do not change the name of the Component's key file because this
would require changing the Component GUID.
- Do not reorganize the existing hierarchy of Features and
Components. A new Feature can be added, but if a parent Feature is
removed, all its child Features must be also removed.
- Do not remove Components from a Feature.
- The Target and Upgraded MSI packages must have the same
name.
- The Target and Upgraded MSI packages must have the same Product
Code.
For a more comprehensive list of rules that must be followed,
visit:
When creating patches, it is not recommended to use Synchronized Folders. This will lead to
file sequence mismatches and/or changed Component GUIDs between the
target and upgraded MSI packages, if for instance, at least a file is
deleted or renamed on disk.
Advanced Installer strives to respect all the rules, but due to the
involved complexity, success is not always guaranteed. That is why is
recommended to use patches only for minor updates, that do not change
the Product Code and to test the patch throughly in various
installation scenarios. You can author a patch from a Patch project. If you are building an EXE package with the files inside, you need
to extract its contents in order to create a patch. In order to do so,
you will use the "/extract" command-line option of the bootstrapper,
as specified here.
Note that, when applied, the patch will request the original
MSI package (because, by default, the bootstrapper deletes the
extracted files). In order to avoid this problem, select the option
"Do not delete extracted MSI and CAB files" in the Media page,
"Bootstrapper" tab.
|