[wix-users] Serious problem with FindRelatedProducts and install context

Edwin Castro egcastr at gmail.com
Tue Mar 27 16:49:50 PDT 2018


I *think* burn doesn't support dual-scope out of the box. That said, you
could write a custom BA that presented that choice to the user and passes
the appropriate ALLUSERS and MSIINSTALLPERUSER values.

I'm guessing you intend to force per-machine if the product was installed
per-machine previously.

What if a user really wants a per-user install even though there is already
a per-machine install?

What if UserA installed per-user and then a sysadmin installed per-machine
and then UserB tries to install per-user? That's three different installs
and none of them would logically be upgrades because the context is
different.

I don't have practical experience with per-user installs because I do setup
exclusively for enterprise software that is intended to be installer
per-machine only ... *but* ... The more I think about this the more I think
it never makes sense to have installers that target both per-user and
per-machine contexts. They really are different beasts and probably deserve
their own separate MSI packages. I could see a single bootstrapper that was
responsible for determining the kind of install/upgrade we're interested in
and then installing the appropriate MSI but that would be about it.

--
Edwin G. Castro

On Tue, Mar 27, 2018 at 4:36 PM, Alan Sinclair <anadem at gmail.com> wrote:

> oops, meant to write AppSearch not FindRelatedProducts (brain fail)
>
> The issue isn't per-machine vs per-user, it's per-machine upgrading
> per-machine. Installing the dual-scope package, only per-user previous
> installations are detected and upgraded.
>
> When version 1.0 is installed per-machine, a subsequent install of version
> 2.0 does not 'see' the v1.0 installed product, and installs v 2.0 as a
> fresh new product (overwriting the per-machine files if v.2.0 is installed
> per-machine .. which is what I meant by "only one set of files")
>
> *>  I have a feeling you'll need a bootstrapper to install the upgrade
> MSI *
>
> Would that be an exe which passes  ALLUSERS and MSIINSTALLPERUSER to
> msiexec to install the MSI?
> Would Burn be a candidate for that? I've never used Burn. Can Burn allow
> the user to choose per-machine or per-user in a non-upgrade install?  (for
> an upgrade we'd want to remove the ability to choose)
>
> many thanks
> Alan
>
>
>
>
>
>
> On Tue, Mar 27, 2018 at 4:23 PM, Edwin Castro <egcastr at gmail.com> wrote:
>
>> Just curious, what do you mean "there's only one set of files"?
>>
>> A per-user install and per-machine install should probably install to
>> different locations. What if UserA and UserB both perform per-user
>> installs? Those installs should not conflict with one another and should
>> not conflict with a per-machine install.
>>
>> I have a feeling you'll need a bootstrapper to install the upgrade MSI
>> with appropriate values for ALLUSERS and MSIINSTALLPERUSER depending on
>> whether the user wants to install/upgrade per-user vs per-machine...
>>
>> --
>> Edwin G. Castro
>>
>>
>>
>> On Tue, Mar 27, 2018 at 4:05 PM, Alan Sinclair via wix-users <
>> wix-users at lists.wixtoolset.org> wrote:
>>
>>> I'm making a dual-scope MSI which uses the InstallScope dialog for the
>>> user
>>> to choose per-user or per-machine. It installs fine, but upgrades to a
>>> per-machine installation fail.
>>>
>>> FindRelatedProducts seems to search only the scope in current force when
>>> it
>>> runs, and it's sequenced right at the start (so early it doesn't even
>>> appear in the log.)
>>>
>>> My MSI has ALLUSERS=2 and MSIINSTALLPERUSER=1, with the InstallScope
>>> dialog
>>> changing that as required, so FindRelatedProducts looks only in per-user
>>> scope.  If an earlier-versioned MSI was installed per-machine,
>>> FindRelatedProducts
>>> does NOT find it, so the install does not upgrade, and Control Panel's
>>> ARP
>>> shows the product twice (there's only one set of files, of course).
>>>
>>> Is there any way to solve this?  Can FindRelatedProducts be run later in
>>> the sequence, after the UI? Or can FindRelatedProducts be run twice?
>>>
>>> Or can I add custom actions before FindRelatedProducts to look in the
>>> registry and check previous install scope, then adjust ALLUSERS etc
>>> accordingly so FindRelatedProducts searches the right scope?
>>>
>>> How can a dual-scope package be upgraded in both per-user AND per-machine
>>> installations?
>>>
>>> Thanks
>>> Alan
>>>
>>> ____________________________________________________________________
>>> WiX Toolset Users Mailing List provided by FireGiant
>>> http://www.firegiant.com/
>>>
>>
>>
>


More information about the wix-users mailing list