Greetings Murray,
Well, the white paper basically describes what MSI is, what tools you can use to edit them, how to pull a CVI distribution kit .MSI into them, and where to read more about MSI after you do. The details of what you actually need to edit in an MSI to make a particular change is unfortunately well beyond what could fit in a white paper 🙂 (The commercial tools do help a lot in this area, though)
To get you started, though, you could create a property in the MSI Property table name "REINSTALLMODE". If the property isn't present, it's default value is "omus" (each character represents a particular installer behavior for file replacement). Here is a table from MSDN which describes other possible values:
p - Reinstall only if file
is missing (i.e., verify that the file is present).
o - Reinstall if file is missing, or an older version is present.
e - Reinstall if file is missing, or an equal or older version is present
d - Reinstall if file is missing, or a different version is present
c - Reinstall if file is missing, or corrupt. This option only repairs files that have msidbFileAttributesChecksum in the Attributes column of the File table.
a - Force all files to be reinstalled, regardless of checksum or version.
u - Rewrite all required registry entries from the Registry table that go to the HKEY_CURRENT_USER or HKEY_USERS registry hive.
m - Rewrite all required registry entries from the Registry table that go to the HKEY_LOCAL_MACHINE or HKEY_CLASSES_ROOT registry hive. Rewrite all information from the Class table, Verb table, PublishComponent table, ProgID table, MIME table, Icon table, Extension table, and AppID table regardless of machine or user assignment. Reinstall all qualified components
.
s - Reinstall all shortcuts and re-cache all icons overwriting any existing shortcuts and icons.
v - Use to run from the source package and re-cache the local package
Regards,
- Wes / NI