cancel
Showing results forย 
Showย ย onlyย  | Search instead forย 
Did you mean:ย 
seckhart
Level 3

Major upgrade not detected after upgrading to InstallShiel 2011

Hello,

I upgraded from IS2009 to IS2011 and now my Major Upgrade is not being detected. My major upgrade works fine with the IS2009 project but the same project upgraded to IS2011 does not detect the upgrade (I have Detect Only = Yes because I am performing a 'manual major upgrade'). It is an InstallScript MSI project. Here are pieces from the log files:

IS2009:
---------
InstallShield 8:33:49: Begin SetAllUsers()
InstallShield 8:33:49: Getting records from Upgrade table
InstallShield 8:33:49: UpgradeCode: {004147BB-776C-47CB-8BF5-A0E80B3999B0} MinVersion: MaxVersion: 1.0.28 Language: Attributes: 2
InstallShield 8:33:49: Checking related product {72206487-5F84-469B-B347-C75AEDF1C8A9}
InstallShield 8:33:49: Product_Name {72206487-5F84-469B-B347-C75AEDF1C8A9} 0 1.0.28 ***Not Related***
InstallShield 8:33:49: No related products for UpgradeCode {004147BB-776C-47CB-8BF5-A0E80B3999B0} found
InstallShield 8:33:49: UpgradeCode: {004147BB-776C-47CB-8BF5-A0E80B3999B0} MinVersion: 1.0.36 MaxVersion: Language: Attributes: 2
InstallShield 8:33:49: Checking related product {72206487-5F84-469B-B347-C75AEDF1C8A9}
InstallShield 8:33:49: Product_Name {72206487-5F84-469B-B347-C75AEDF1C8A9} 0 1.0.28 ***Related***
MSI (c) (60!A8) [08:33:49:483]: PROPERTY CHANGE: Adding IS_MAJOR_UPGRADE property. Its value is 'Yes'.
InstallShield 8:33:49: ALLUSERS of related product {72206487-5F84-469B-B347-C75AEDF1C8A9} is = 1
MSI (c) (60!A8) [08:33:49:483]: PROPERTY CHANGE: Adding ALLUSERS property. Its value is '1'.

InstallShield 8:33:49: End SetAllUsers()
Action ended 8:33:49: ISSetAllUsers. Return value 1.


IS2011:
---------
InstallShield 8:37:42: Begin SetAllUsers()
InstallShield 8:37:42: Getting records from Upgrade table
InstallShield 8:37:42: UpgradeCode: {004147BB-776C-47CB-8BF5-A0E80B3999B0} MinVersion: MaxVersion: 1.0.28 Language: Attributes: 2
InstallShield 8:37:42: Checking related product {72206487-5F84-469B-B347-C75AEDF1C8A9}
InstallShield 8:37:42: No related products for UpgradeCode {004147BB-776C-47CB-8BF5-A0E80B3999B0} found
InstallShield 8:37:42: UpgradeCode: {004147BB-776C-47CB-8BF5-A0E80B3999B0} MinVersion: 1.0.36 MaxVersion: Language: Attributes: 2
InstallShield 8:37:42: Checking related product {72206487-5F84-469B-B347-C75AEDF1C8A9}
InstallShield 8:37:42: No related products for UpgradeCode {004147BB-776C-47CB-8BF5-A0E80B3999B0} found
InstallShield 8:37:42: UpgradeCode: {004147BB-776C-47CB-8BF5-A0E80B3999B0} MinVersion: 1.0.28 MaxVersion: 1.0.35 Language: Attributes: 771
InstallShield 8:37:42: Checking related product {72206487-5F84-469B-B347-C75AEDF1C8A9}
InstallShield 8:37:42: No related products for UpgradeCode {004147BB-776C-47CB-8BF5-A0E80B3999B0} found
InstallShield 8:37:42: End SetAllUsers()
Action ended 8:37:42: ISSetAllUsers. Return value 1.

Any ideas what could be causing this?

Thanks,
Steve
Labels (1)
0 Kudos

(1) Reply
seckhart
Level 3

I have found a solution that appears to work at least for my situation. After lots of testing (and working with Flexera support) it looks like the IS_MAJOR_UPGRADE property isn't getting set anymore if Detect Only = Yes. Therefore, I was told to check the Detect Property and if it has the previous product code, then assume it's a Major Upgrade. At first this didn't work, but then I ran across this in the IS 2011 release notes:
"Beginning with InstallShield 2010, the ALLUSERS property is set to 1 by default in all new InstallScript MSI projects. This is the recommended implementation, since most installations must be run in a per-machine context with administrative privileges. This value is also recommended to help avoid ALLUSERS-related issues when an InstallScript MSI installation is run silently.

If you upgrade a project that was created with InstallShield 2009 or earlier to InstallShield 2011, InstallShield does not automatically change the value of the ALLUSERS property or add this property if it was not defined in the earlier project.
"

Since I upgraded from IS 2009 this property did not exist in the project, so I added it and set its default value to 1, like a new project in IS2011 will do. This finally makes the Detect Property get set to the previous product code ๐Ÿ™‚ . The FindRelatedProducts custom action actually finds the previous product code and it apparently needs property ALLUSERS to work correctly. When a Major Upgrade is detected, action ISSetAllUsers is supposed to set ALLUSERS, but for some reason it isn't doing that anymore (it isn't detecting my previous version, even though the IS2009 project with the same parameters did detect it). Support isn't giving me any explanation as to why this behavior has changed, but at least in my testing, adding ALLUSERS = 1 to the property table and checking the Detect Property allows me to detect and perform my manual major upgrade.

-Steve
0 Kudos