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
- :
- Major Upgrade removing files/Not installing required Files
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
Jul 15, 2009
02:08 PM
Major Upgrade removing files/Not installing required Files
Now this has probably been mentioned here before, but I could not find an exact match to my issue or solution. So I figure that I would just create my own issue here and see if anyone has a solution to this problem.
We have been seeing this issue for a while now and it is always the case where the install is doing a major upgrade over a previous version of our product and in some cases there were components that had higher version numbers in the previous version then what was in the new version.
What happens is that the msi install detects the previous version and it detects that some of the component version numbers are higher than what is in the install. So it turns off these components so that they do not install, as older files should not overwrite newer files, but then the install goes ahead and uninstalls the previous version, including the files with the newer versions, and then completes the install of the new version, excluding the ones that the msi marked as not needed to be installed.
Once done the files that had higher version number are gone and therefore the app will not work as there are now missing files. The user would then have to perform a repair of the install to have the files get installed.
I was trying to find any microsoft articals on this and found this one: http://support.microsoft.com/kb/905238
But the problem with their solution is that it will only work with components that all have their Shared flag set. This is like setting your major upgrade to install first and the perform the uninstall of the previous version, but all files have to have the Shared flag set.
In our case the files in the main App folder are not shared and therefore does not have the Shared flag set, and all our custom merge modules are shared and therefore have the Shared flag set. If we set out RemoveExistingApps to be triggered after InstallFinalize then the shared apps would be fine, but the main app files will be removed.
Is there any other solutions to this issue? Is there a better way of handling this or does any of the newer versions of InstallShield or MSI engines solve for this issue?
We have been seeing this issue for a while now and it is always the case where the install is doing a major upgrade over a previous version of our product and in some cases there were components that had higher version numbers in the previous version then what was in the new version.
What happens is that the msi install detects the previous version and it detects that some of the component version numbers are higher than what is in the install. So it turns off these components so that they do not install, as older files should not overwrite newer files, but then the install goes ahead and uninstalls the previous version, including the files with the newer versions, and then completes the install of the new version, excluding the ones that the msi marked as not needed to be installed.
Once done the files that had higher version number are gone and therefore the app will not work as there are now missing files. The user would then have to perform a repair of the install to have the files get installed.
I was trying to find any microsoft articals on this and found this one: http://support.microsoft.com/kb/905238
But the problem with their solution is that it will only work with components that all have their Shared flag set. This is like setting your major upgrade to install first and the perform the uninstall of the previous version, but all files have to have the Shared flag set.
In our case the files in the main App folder are not shared and therefore does not have the Shared flag set, and all our custom merge modules are shared and therefore have the Shared flag set. If we set out RemoveExistingApps to be triggered after InstallFinalize then the shared apps would be fine, but the main app files will be removed.
Is there any other solutions to this issue? Is there a better way of handling this or does any of the newer versions of InstallShield or MSI engines solve for this issue?
(10) Replies