This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Major upgrade
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 16, 2010
06:00 AM
Major upgrade
How does MSI detects the version of the previous package? In other words, when preventing the downgrade, how does it exactly work? How does MSI determines the version?
Thanks.
Thanks.
3 Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 16, 2010
05:27 PM
I'm not sure what level of detail you're looking for, but the short version is, Windows Installer stores information---product code, upgrade code, version, and more---about every installed product. When your installer runs, the FindRelatedProducts action finds the product codes of installed products with the target upgrade code, and looks up their versions to see if they're within the range specified in the Upgrade table.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 16, 2010
05:51 PM
I am wondering where these information are stored/read from by Windows Installer. I would think somewhere visible at the registry? Perhaps one location like HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall ?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 17, 2010
09:58 AM
Beyond that uninstaller information, there's cached product information under HLKM\Software\Microsoft\Windows\CurrentVersion\Installer and in the cached MSI database. I don't know from memory which set of data the Windows Installer engine uses for comparisons (presumably it would be the same everywhere), but in any case I'm pretty sure it's undocumented, so doing anything directly with it is probably a bad idea.
The good news is, there are MSI API functions to get information about installed products, too.
The good news is, there are MSI API functions to get information about installed products, too.
