[wix-users] HELP PLEASE!! multiple MSI's in previous version to single MSI, in new version, how to trigger upgrade? [P]

Steven Ogilvie Steven.Ogilvie at titus.com
Wed Feb 22 13:09:10 PST 2017


Classification: Public

Our Client installer on a 64 bit OS with 32 bit OFFICE

Old install:
64 bit Services/Plugins/HM /Client addon3 from 64 bit MSI's
32 bit Client addon1/Client Addon2 from 32 bit MSI's

New install:
64 bit Services/Plugins/HM/Client addon3 from the 64 bit MSI
32 bit Client Addon1/Client Addon2 from the 32 bit MSI

Both old/new installer is using the bootstrapper to run the proper MSI's


This message has been marked as Public by Steven Ogilvie on February 22, 2017 4:09:08 PM. Classification provided by TITUS. 





-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Edwin Castro
Sent: February 22, 2017 4:02 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] HELP PLEASE!! multiple MSI's in previous version to single MSI, in new version, how to trigger upgrade? [P]

I was asking if perhaps you were testing on a 64-bit OS that had old 64-bit MSIs installed and trying to install a new 32-bit MSI? I think, in this case, the 32-bit MSI will not detect the installed 64-bit MSIs.

But if you are testing on a 32-bit OS with old 32-bit MSIs installed and trying to install a new 32-bit MSI, then I'm not sure what is going on yet as I would expect this scenario to work.

In our case, we use a burn bootstrapper to ensure we're always installing 64-bit MSIs on 64-bit OS and 32-bit MSIs on 32-bit OS.

Our setup was similar to yours where we had a single old 64-bit MSI and old 32-bit MSI sharing an upgrade code. I switched it so that the new MSIs had different upgrade codes just like you have. We're not seeing problems when installing new 32-bit MSI on 32-bit OS with old 32-bit MSI.

--
Edwin G. Castro


On Wed, Feb 22, 2017 at 12:53 PM, Steven Ogilvie <Steven.Ogilvie at titus.com> wrote:
>
> Nope
>
> Like I said the 'old' 32/64 bit MSI's used the same upgradecode of the 
> 6 MSI's
>
> So in the new MSI's the check for the 'old' MSI's the same upgrade code for each of the 6 MSI's are the same upgradecodes in the 32 bit MSI and the 64 bit MSI of the new installer...
>
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On 
> Behalf Of Edwin Castro
> Sent: February 22, 2017 3:47 PM
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Subject: Re: [wix-users] HELP PLEASE!! multiple MSI's in previous 
> version to single MSI, in new version, how to trigger upgrade?
>
> Out of curiosity, are you trying to detect old 64-bit packages in the new 32-bit package? I don't think that will work...
>
> --
> Edwin G. Castro
>
>
> On Wed, Feb 22, 2017 at 12:39 PM, Steven Ogilvie <Steven.Ogilvie at titus.com> wrote:
>>
>> The weird thing is I see different things in my 32 bit MSI then in my
>> 64 bit MSI Depending which MSI is run first is what shows up in the MSI...
>>
>> The one MSI I don't see as an "old app" is OLDAPPFOUND_TMC it is not show in either MSI, but I see the previous version Bootstrapper log and *only* the TMC MSI log from the previous version, then I have my 'new' bootstrapper log file and the 2 MSI's (I am installing in 64 bit OS with 32 bit OFFICE...
>>
>> I had 7 MSI's 32 bit and 7 MSI's 64 bit which led to 2 MSI's created, the new MSI"s have 2 different upgrade codes, different product codes, same ver..
>>
>> The previous 7 MSI's 32 and 64 but used the same upgrade codes with 
>> their 32 and 64 bit MSI's since you couldn't install both at the same 
>> time (32/64)
>>
>> Now here is what happens when I 'upgrade' to my new version:
>>
>> BTW replace BOB with TMC I was trying to 'hide' the client ....
>>
>> 64 bit MSI is run first:
>>
>> Action start 14:57:02: FindRelatedProducts.
>> MSI (s) (84:0C) [14:57:02:762]: PROPERTY CHANGE: Adding OLDCLIENTAPPFOUND property. Its value is '{1383059F-BA65-4B30-A82A-EE242BF38643}'.
>> MSI (s) (84:0C) [14:57:02:777]: PROPERTY CHANGE: Adding OLDPLUGINAPPFOUND property. Its value is '{746E2D09-0401-472F-AAEB-4D84E979823C}'.
>> MSI (s) (84:0C) [14:57:02:777]: PROPERTY CHANGE: Adding OLDHEALTHMONITORAPPFOUND property. Its value is '{E0F9A11E-06DC-4386-97F4-3E08661D0796}'.
>> MSI (s) (84:0C) [14:57:02:777]: PROPERTY CHANGE: Adding OLDAPPFOUND_TCO property. Its value is '{EB831004-51B3-4D01-85BC-593B6413073C}'.
>> MSI (s) (84:0C) [14:57:02:777]: PROPERTY CHANGE: Adding OLDAPPFOUND_TCD property. Its value is '{C03C3560-A9A0-405A-A754-29586A76023A}'.
>> MSI (s) (84:0C) [14:57:02:777]: Skipping action: NEWAPPFOUND_TCD 
>> (condition is false) MSI (s) (84:0C) [14:57:02:777]: Skipping action:
>> NEWAPPFOUND_TCO (condition is false) MSI (s) (84:0C) [14:57:02:777]:
>> Skipping action: NEWAPPFOUND_TMC (condition is false) MSI (s) (84:0C)
>> [14:57:02:777]: Skipping action: SAMECLIENTFOUND (condition is false) 
>> MSI (s) (84:0C) [14:57:02:777]: Skipping action: SAMEFOUND (condition 
>> is false) MSI (s) (84:0C) [14:57:02:777]: Skipping action:
>> SAMEHEALTHMONITORFOUND (condition is false) MSI (s) (84:0C)
>> [14:57:02:777]: Skipping action: SetMspReinstall (condition is false) MSI (s) (84:0C) [14:57:02:777]: Doing action: AppSearch Action ended 14:57:02: FindRelatedProducts. Return value 1.
>>
>> 32 bit MSI:
>>
>> Action start 14:59:36: FindRelatedProducts.
>> MSI (s) (84:68) [14:59:36:343]: Skipping action: NEWAPPFOUND_TCD 
>> (condition is false) MSI (s) (84:68) [14:59:36:343]: Skipping action:
>> NEWAPPFOUND_TCO (condition is false) MSI (s) (84:68) [14:59:36:343]:
>> Skipping action: NEWAPPFOUND_TMC (condition is false) MSI (s) (84:68)
>> [14:59:36:343]: Skipping action: SAMECLIENTFOUND (condition is false) 
>> MSI (s) (84:68) [14:59:36:343]: Skipping action: SAMEFOUND (condition 
>> is false) MSI (s) (84:68) [14:59:36:343]: Skipping action:
>> SAMEHEALTHMONITORFOUND (condition is false) MSI (s) (84:68)
>> [14:59:36:343]: Skipping action: SetMspReinstall (condition is false) MSI (s) (84:68) [14:59:36:343]: Doing action: AppSearch Action ended 14:59:36: FindRelatedProducts. Return value 1.
>>
>> My MajorUpgrade in both new MSI's is: <MajorUpgrade 
>> DowngradeErrorMessage="A newer version of $(var.PlatformProductName) 
>> is already installed. Setup will now exit."
>> Schedule="afterInstallValidate" AllowDowngrades="no"/>
>>
>> <Property Id="OLDAPPFOUND" Secure="yes" />
>>     <Property Id="SAMEFOUND" Secure="yes" />
>>     <Property Id="PREVIOUSAPPFOUNDOLD" Secure="yes" />
>>     <Property Id="OLDCLIENTAPPFOUND" Secure="yes" />
>>     <Property Id="SAMECLIENTFOUND" Secure="yes" />
>>     <Property Id="OLDPLUGINAPPFOUND" Secure="yes" />
>>     <Property Id="SAMEPLUGINFOUND" Secure="yes" />
>>     <Property Id="OLDHEALTHMONITORAPPFOUND" Secure="yes" />
>>     <Property Id="SAMEHEALTHMONITORFOUND" Secure="yes" />
>>     <Property Id="OLDAPPFOUND_TMC" Secure="yes" />
>>     <Property Id="NEWAPPFOUND_TMC" Secure="yes" />
>>     <Property Id="PREVIOUSAPPFOUND_TMC" Secure="yes" />
>>     <Property Id="PREVIOUSAPPFOUND1_TMC" Secure="yes" />
>>     <Property Id="PREAPPFOUND_TMC" Secure="yes" />
>>
>> CompanyBaseVersion was the 1st version of this product line, i.e.
>> 4.0.0.0 COMPANYClientServiceVersion is the current version of our 
>> client service EXE COMPANYPluginsVersion is the current version of 
>> the main plugin DLL COMPANYHMVersion is the current version of the HM 
>> EXE TMCBaseVersion was the 1st version of this client i.e. 2.0.0.0 
>> TMCVersion is the current version of the client main DLL 
>> TMCMaxVersion is the same as TMCVersion
>>
>> <!-- Client Services -->
>>     <Upgrade Id="$(var.UpgradeCodeServices)">
>>       <UpgradeVersion Property="OLDCLIENTAPPFOUND" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.COMPANYBaseVersion)" IncludeMaximum="no" Maximum="$(var.COMPANYClientServiceVersion)" />
>>       <UpgradeVersion Property="SAMECLIENTFOUND" IncludeMaximum="yes" IncludeMinimum="yes" Minimum="$(var.COMPANYClientServiceVersion)" Maximum="$(var.COMPANYClientServiceVersion)" OnlyDetect="yes"/>
>>     </Upgrade>
>>     <!-- Plugins upgrade stuff -->
>>     <Upgrade Id="$(var.UpgradePluginInCode)">
>>       <UpgradeVersion Property="OLDPLUGINAPPFOUND" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.COMPANYBaseVersion)" IncludeMaximum="no" Maximum="$(var.COMPANYPluginsVersion)" />
>>       <UpgradeVersion Property="SAMEPLUGINFOUND" IncludeMaximum="yes" IncludeMinimum="yes" Minimum="$(var.COMPANYPluginsVersion)" Maximum="$(var.COMPANYPluginsVersion)" OnlyDetect="yes"/>
>>     </Upgrade>
>>     <!-- Health Monitor Upgrade stuff -->
>>     <Property Id="PREVIOUSVERSIONSINSTALLEDHM" Secure="yes" />
>>     <Upgrade Id ="$(var.UpgradeCodeHM)">
>>       <UpgradeVersion Property="OLDHMAPPFOUND" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.COMPANYBaseVersion)" IncludeMaximum="no" Maximum="$(var.COMPANYHMVersion)"/>
>>       <UpgradeVersion Property="SAMEHMFOUND" IncludeMaximum="yes" IncludeMinimum="yes" Minimum="$(var.COMPANYHMVersion)" Maximum="$(var.COMPANYHMVersion)" OnlyDetect="yes"/>
>>     </Upgrade>
>>
>>     <!-- TMC Upgrade stuff -->
>>     <Upgrade Id="$(var.TMCUpgradeCode)">
>>       <UpgradeVersion Property="OLDAPPFOUND_TMC" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.TMCBaseVersion)" IncludeMaximum="no" Maximum="$(var.TMCVersion)" />
>>       <UpgradeVersion Property="NEWAPPFOUND_TMC" IncludeMaximum="yes" IncludeMinimum="yes" Minimum="$(var.TMCVersion)" Maximum="$(var.TMCVersion)" OnlyDetect="yes"/>
>>     </Upgrade>
>>     <Upgrade Id="$(var.TMCUpgrade)">
>>       <UpgradeVersion Property="PREVIOUSAPPFOUND_TMC" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.TMCBaseVersion)" IncludeMaximum="no" Maximum="$(var.TMCMaxVersion)" />
>>     </Upgrade>
>>
>>     <Upgrade Id="{previous GUID}">
>>       <UpgradeVersion Property="PREVIOUSAPPFOUND1_TMC" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.TMCBaseVersion)" IncludeMaximum="no" Maximum="$(var.TMCMaxVersion)" />
>>     </Upgrade>
>>
>>     <Upgrade Id="{previous older GUID}">
>>       <UpgradeVersion Property="PREAPPFOUND_TMC" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.TMCBaseVersion)" IncludeMaximum="no" Maximum="$(var.TMCMaxVersion)" />
>>     </Upgrade>
>>
>> Ya I know pretty confusing...
>>
>> Thanks,
>>
>> Steve
>>
>>
>> -----Original Message-----
>> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On 
>> Behalf Of Edwin Castro
>> Sent: February 22, 2017 3:18 PM
>> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
>> Subject: Re: [wix-users] HELP PLEASE!! multiple MSI's in previous version to single MSI, in new version, how to trigger upgrade?
>>
>> I do something similar but I don't have as many products to upgrade from. Here's what I do:
>>
>> <MajorUpgrade AllowSameVersionUpgrades="$(var.AllowSameVersionUpgrades)"
>> DowngradeErrorMessage="$(var.DowngradeErrorMessage)"
>> MigrateFeatures="no" Schedule="afterInstallInitialize"/>
>> <Upgrade Id="$(var.PreviousUpgradeCode)">
>>     <UpgradeVersion IncludeMinimum="no" IncludeMaximum="no"
>> Maximum="$(var.PreviousMaximumVersion)" MigrateFeatures="no"
>> Property="PREVIOUS_UPGRADE_DETECTED"/>
>> </Upgrade>
>>
>> I did not have to add any additional Custom Actions to InstallExecuteSequence. MajorUpgrade adds RemoveExistingProducts in the desired spot but that's it.
>>
>> On the surface it looks like your authoring is correct. What are you seeing in your verbose log?
>>
>> You say WIX_UPGRADE_DETECTED is not being detected but your authoring doesn't use WIX_UPGRADE_DETECTED. It uses OLDAPPFOUND, OLDCLIENTAPPFOUND, OLDAPPFOUND_BOB, PREVIOUSAPPFOUND_BOB, PREVIOUSAPPFOUND1_BOB, and PREAPPFOUND_BOB. Are these properties set when those products exist on the target system?
>>
>> --
>> Edwin G. Castro
>>
>>
>> On Wed, Feb 22, 2017 at 7:15 AM, Steve Ogilvie <SOGILVIE at msn.com> wrote:
>>> Hi folks,
>>>
>>>
>>> sigh, last minute issue that is stopping our release!
>>>
>>>
>>> I have a client installer that in previous versions were multiple MSI's now down 1 1 MSI...
>>>
>>>
>>> WIX_UPGRADE_DETECTED is not being detected of course because the upgradecode of the 'new' MSI is different than the previous MSI's, however I do have their upgrade elements in the new MSI:
>>>
>>>
>>>
>>> New MSI upgrade stuff:
>>>
>>> <Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
>>>     <Upgrade Id ="$(var.UpgradeCode)">
>>>       <UpgradeVersion Property="OLDAPPFOUND" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.BaseVersion)" IncludeMaximum="no" Maximum="$(var.CoreVersion)"/>
>>>       <UpgradeVersion Property="SAMEFOUND" IncludeMaximum="yes" IncludeMinimum="yes" Minimum="$(var.CoreVersion)" Maximum="$(var.CoreVersion)" OnlyDetect="yes"/>
>>>     </Upgrade>
>>>
>>>
>>> 1 of the old MSI's:
>>>
>>> <!-- Client Services -->
>>>     <Upgrade Id="$(var.UpgradeCodeServices)">
>>>       <UpgradeVersion Property="OLDCLIENTAPPFOUND" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.BaseVersion)" IncludeMaximum="no" Maximum="$(var.ClientServiceVersion)" />
>>>       <UpgradeVersion Property="SAMECLIENTFOUND" IncludeMaximum="yes" IncludeMinimum="yes" Minimum="$(var.ClientServiceVersion)" Maximum="$(var.ClientServiceVersion)" OnlyDetect="yes"/>
>>>     </Upgrade>
>>>
>>> another older MSI:
>>>
>>> <!-- TMC Upgrade stuff -->
>>>
>>> <Upgrade Id="$(var.BOBUpgradeCode)">
>>>       <UpgradeVersion Property="OLDAPPFOUND_BOB" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.BOBBaseVersion)" IncludeMaximum="no" Maximum="$(var.BOBMaxVersion)" />
>>>       <UpgradeVersion Property="NEWAPPFOUND_BOB" IncludeMaximum="yes" IncludeMinimum="yes" Minimum="$(var.BOBVersion)" Maximum="$(var.BOBVersion)" OnlyDetect="yes"/>
>>>     </Upgrade>
>>>     <Upgrade Id="$(var.BOBUpgrade)">
>>>       <UpgradeVersion Property="PREVIOUSAPPFOUND_BOB" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.BOBBaseVersion)" IncludeMaximum="no" Maximum="$(var.BOBMaxVersion)" />
>>>     </Upgrade>
>>>
>>>     <Upgrade Id="{A Really old GUID}">
>>>       <UpgradeVersion Property="PREVIOUSAPPFOUND1_BOB" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.BOBBaseVersion)" IncludeMaximum="no" Maximum="$(var.BOBMaxVersion)" />
>>>     </Upgrade>
>>>
>>>     <Upgrade Id="{Another really old GUID}">
>>>       <UpgradeVersion Property="PREAPPFOUND_BOB" IncludeMinimum="yes" OnlyDetect="no" Minimum="$(var.BOBBaseVersion)" IncludeMaximum="no" Maximum="$(var.BOBMaxVersion)" />
>>>     </Upgrade>
>>>
>>> i have this:
>>>
>>>
>>>  <!-- Custom Actions -->
>>>         <CustomAction Id="SetMspReinstall" Property="REINSTALLMODE" Value="amus" />
>>>     <UI>
>>>       <ProgressText Action="SetMspReinstall">CA: Setting REINSTALLMODE to amus...</ProgressText>
>>>     </UI>
>>>     <CustomAction Id="NEWAPPFOUND_BOB" Error="A newer version of $(var.PlatformProductName) is already installed." />
>>>     <UI>
>>>       <ProgressText Action="NEWAPPFOUND_BOB">CA: Setting up NEWAPPFOUND...</ProgressText>
>>>     </UI>
>>>
>>>
>>> <InstallExecuteSequence>
>>>       <ResolveSource Before="CostFinalize"><![CDATA[Not Installed And Not PATCH]]></ResolveSource>
>>>       <Custom Action="NEWAPPFOUND_BOB" After="FindRelatedProducts">NEWAPPFOUND</Custom>
>>>       <Custom Action="NEWAPPFOUND_BOB2" After="FindRelatedProducts">NEWAPPFOUND</Custom>
>>>       <Custom Action="NEWAPPFOUND_BOB3" After="FindRelatedProducts">NEWAPPFOUND</Custom>
>>>       <Custom Action="SetMspReinstall" After="FindRelatedProducts">Installed</Custom>
>>>       <RemoveExistingProducts Overridable="yes"
>>> After="InstallInitialize"/>
>>>
>>>
>>> What do I need to do to ensure the new MSI can find the other MSI's and realize it should be doing an upgrade??
>>>
>>> Steve
>>>
>>>
>>>
>>>
>>> ____________________________________________________________________
>>> WiX Toolset Users Mailing List provided by FireGiant 
>>> http://www.firegiant.com/
>>
>> ____________________________________________________________________
>> WiX Toolset Users Mailing List provided by FireGiant 
>> http://www.firegiant.com/
>>
>> ____________________________________________________________________
>> WiX Toolset Users Mailing List provided by FireGiant 
>> http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant 
> http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant 
> http://www.firegiant.com/

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/


More information about the wix-users mailing list