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: Why is a CA needed to remove previously installed versioned files on Major Upgrades?
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 18, 2013
01:25 PM
Why is a CA needed to remove previously installed versioned files on Major Upgrades?
I have been pondering this scenario and it does not make sense. On Major Upgrades why is it necessary to include a CA to delete versioned files (before Cost Finalize) to get an older versioned file to install? It is a Major Upgrade why does it matter? Especially when the versioned files are isolated.
Scenario: a program has an older isolated versioned of java installed within INSTALLDIR\java. The programmers have found that they now need the previous version of java installed in the same location. None of the older versioned files get installed unless the folder structure is deleted prior to cost finalization.
Any thoughts? Please do not respond stating to change the file's version number within the File Table.
Scenario: a program has an older isolated versioned of java installed within INSTALLDIR\java. The programmers have found that they now need the previous version of java installed in the same location. None of the older versioned files get installed unless the folder structure is deleted prior to cost finalization.
Any thoughts? Please do not respond stating to change the file's version number within the File Table.
(3) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 19, 2013
11:36 AM
Hi there,
It is because the MSI Major Upgrade functionality doesn't communicate with the rest of the engine.
Even though the files are going to be removed during RemoveExistingProducts, CostFinalize/InstallValidate doesn't know that. Therefore, the need to delete the files.
I don't know if this is a consequence of the intentional design of major upgrades, or if it signifies Major Upgrades being more of an afterthought. But this is the behavior. I guess, if you required different behavior, the thinking might go that this is the fuction of the REINSTALLMODE property, which can be set by a custom action during a major upgrade to enable the behavior you're looking for.
Just my 2 cents, anyways.
It is because the MSI Major Upgrade functionality doesn't communicate with the rest of the engine.
Even though the files are going to be removed during RemoveExistingProducts, CostFinalize/InstallValidate doesn't know that. Therefore, the need to delete the files.
I don't know if this is a consequence of the intentional design of major upgrades, or if it signifies Major Upgrades being more of an afterthought. But this is the behavior. I guess, if you required different behavior, the thinking might go that this is the fuction of the REINSTALLMODE property, which can be set by a custom action during a major upgrade to enable the behavior you're looking for.
Just my 2 cents, anyways.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 20, 2013
07:25 AM
This issue has been discussed here (among other places):
As described, what you can do is schedule the RemoveExistingProducts action before the CostInitialize.
This will guarantee that the previous version is removed before Windows Installer checks which files must be reinstalled.
This is technically feasible, but ICE27 will fail when validating.
I hope that helps.
- http://community.flexerasoftware.com/showthread.php?142624-Any-ideas
- http://stackoverflow.com/questions/4227456/windows-installer-deletes-versioned-file-during-product-upgrade-instead-of-down
As described, what you can do is schedule the RemoveExistingProducts action before the CostInitialize.
This will guarantee that the previous version is removed before Windows Installer checks which files must be reinstalled.
This is technically feasible, but ICE27 will fail when validating.
I hope that helps.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 31, 2013
07:40 AM
changing the sequence seems the easiest. Having CAs to delete files just to get around ICE errors is too time consuming.
Thank you
Thank you