[wix-users] How to Detect if Bundle is Being Upgraded vs Uninstalled

Kristoffer M kristofferm2929 at gmail.com
Tue Apr 28 15:33:26 PDT 2020


I'm currently doing that exact thing now. I have a DetectCondition that
checks if it already exists. But during and upgrade and an uninstall, the
package will exist in both cases and will therefore run the
UninstallArgument. This is the behavior I want during an uninstall but not
during an upgrade. I'd like the bundle to just do nothing to this
ExePackage during an upgrade (basically completely ignore it during
upgrade).

On Tue, Apr 28, 2020 at 3:21 PM Edwin Castro <egcastr at gmail.com> wrote:

> I was under the impression that all packages are installed after planning
> and that all planning occurs after all detections.
>
> Any who, perhaps you can do a product search or registry search or other
> some search that tells you that this ExePackage is already installed
> (really, the bundle doesn't matter does it?) and set DetectCondition on
> that ExePackage based on the results of that search. If the ExePackage is
> already installed as would be the case during an upgrade, then it properly
> detects it as already installed and doesn't try to run the ExePackage
> again. If something else already installed that ExePackage before your
> bundle installed it, then would you want to install it again? I'd guess
> probably not.
>
> --
> Edwin G. Castro
>
>
> On Tue, Apr 28, 2020 at 2:33 PM Kristoffer M <kristofferm2929 at gmail.com>
> wrote:
>
>> Hi Edwin,
>>
>> Thank you for your reply. The WixBunleInstalled would be set to true in
>> the instances of upgrade and uninstall so I don't think this can be used to
>> differentiate one over the other. BOOTSTRAPPER_ACTION, according to the
>> documentation, is "updated during the call to IBootstrapperEngine::Plan()".
>> This is an issue for me because ExePackage, if I understand correctly,
>> executes before Plan().
>>
>> On Tue, Apr 28, 2020 at 8:52 AM Edwin Castro <egcastr at gmail.com> wrote:
>>
>>> See
>>> https://wixtoolset.org/documentation/manual/v3/bundle/bundle_built_in_variables.html
>>>
>>>
>>> Perhaps WixBundleInstalled and/or WixBundleAction would be helpful.
>>>
>>> The BOOTSTRAPPER_ACTION enum is defined at
>>>
>>>
>>> https://github.com/wixtoolset/wix3/blob/develop/src/burn/inc/IBootstrapperEngine.h
>>>
>>> --
>>> Edwin G. Castro
>>>
>>>
>>> On Tue, Apr 28, 2020 at 7:36 AM Kristoffer M via wix-users <
>>> wix-users at lists.wixtoolset.org> wrote:
>>>
>>>> Hello All,
>>>>
>>>> I am using a bundle to install a couple MSI packages and some
>>>> prerequisites. One of the prerequisites is a program that uses
>>>> InstallShield to install it. The bundle uses an ExePackage element with
>>>> CommandLine conditions to call the installshield installer based on if
>>>> something else exists.
>>>>
>>>> Installing and Uninstalling the bundle works just fine but there are
>>>> issues
>>>> that occur during the upgrade process. Is there a way to detect if the
>>>> bundle is being upgraded vs uninstalled. I want the ExePackage to
>>>> basically
>>>> do nothing during the upgrade. When using the Product element, there are
>>>> certain properties that can be leveraged such as 'INSTALLED', 'NOT
>>>> REINSTALL', 'REMOVE=ALL', ect... Are there similar properties that can
>>>> be
>>>> used in the bundle element?
>>>>
>>>> Thanks very much!
>>>>
>>>> ____________________________________________________________________
>>>> WiX Toolset Users Mailing List provided by FireGiant
>>>> http://www.firegiant.com/
>>>>
>>>



More information about the wix-users mailing list