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: Component Upgrade Question
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
‎May 26, 2015
02:17 PM
Component Upgrade Question
Current Setup:
Version 1.0 contains Component A (a single modular assembly) installed by default.
Version 2.0 contains Component A, but it should not be installed unless we are upgrading from version 1.0. Component A 's feature is hidden.
Version 2.0 is a major upgrade from Version 1.0, and not distributed as a patch.
What is the best conditional to set on the Feature to prevent Component A from being installed except during the upgrade?
Version 1.0 contains Component A (a single modular assembly) installed by default.
Version 2.0 contains Component A, but it should not be installed unless we are upgrading from version 1.0. Component A 's feature is hidden.
Version 2.0 is a major upgrade from Version 1.0, and not distributed as a patch.
What is the best conditional to set on the Feature to prevent Component A from being installed except during the upgrade?
(5) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 26, 2015
02:26 PM
Try the UPGRADINGPRODUCTCODE property.
https://msdn.microsoft.com/en-us/library/aa369786%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
I think this may do it for you.
https://msdn.microsoft.com/en-us/library/aa369786%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
I think this may do it for you.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 27, 2015
03:17 PM
DLee65 wrote:
Try the UPGRADINGPRODUCTCODE property.
https://msdn.microsoft.com/en-us/library/aa369786%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
I think this may do it for you.
OK, this is moving me forward, but can I use this value on a Feature Condition? UPGRADINGPRODUCTCODE doesn't seem to be set until the "RemoveExistingProducts" custom action is complete. Feature Conditions seem to be evaluated during "CostFinalize", but I'm not certain about this. Recommendations?
Thanks.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 27, 2015
03:34 PM
I replied earlier to this thread, but it seems to have been eaten by the forum monster. Apologies if this shows up multiple times.
UPGRADINGPRODUCTCODE is set during the "RemoveExistingProducts" action, which takes place during the Deferred Execution Script. Essentially after InstallInitialize.
Feature Conditions seem to be evaluated during "CostFinalize" (but I'm not certain about this.) which appears to need to be evaluated before InstallInitialize is run.
Since UPGRADINGPRODUCTCODE isn't set until well after the list of installed features is determined, when and where can you alter this list during the Deferred Execution Script?
Thanks.
UPGRADINGPRODUCTCODE is set during the "RemoveExistingProducts" action, which takes place during the Deferred Execution Script. Essentially after InstallInitialize.
Feature Conditions seem to be evaluated during "CostFinalize" (but I'm not certain about this.) which appears to need to be evaluated before InstallInitialize is run.
Since UPGRADINGPRODUCTCODE isn't set until well after the list of installed features is determined, when and where can you alter this list during the Deferred Execution Script?
Thanks.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 28, 2015
01:28 AM
RemoveExistingProducts sets UPGRADINGPRODUCTCODE in immediate execution and if you feel that's late then you can also look at these custom properties which InstallShield sets for you (action ISSetAllUsers)
IS_MAJOR_UPGRADE and IS_MINOR_UPGRADE and for this to happen you should have set the upgrade item in your project.
IS_MAJOR_UPGRADE and IS_MINOR_UPGRADE and for this to happen you should have set the upgrade item in your project.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 28, 2015
07:05 AM
You can also look at your upgrade table for detecting previous items.
http://blogs.flexerasoftware.com/installtalk/2015/05/installshield-says-its-a-major-upgrade.html?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+InstallTalk+%28InstallTalk%3A+Discussing+the+Best+Practices+and+Trends+in+Software+Installation+Development%29
FindRelatedProducts will populate a property for you. It is populated before any UI objects are shown so this should work for you. You just need to know what property is set with the product GUID in this event. This should be found in the upgrade table.
http://blogs.flexerasoftware.com/installtalk/2015/05/installshield-says-its-a-major-upgrade.html?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+InstallTalk+%28InstallTalk%3A+Discussing+the+Best+Practices+and+Trends+in+Software+Installation+Development%29
FindRelatedProducts will populate a property for you. It is populated before any UI objects are shown so this should work for you. You just need to know what property is set with the product GUID in this event. This should be found in the upgrade table.
![](/skins/images/A5EADE085F77DE82FB3B14D6B307AE6A/responsive_peak/images/icon_anonymous_message.png)