[wix-users] Multi instance setup

Christopher Painter chrpai at iswix.com
Mon May 13 04:50:52 PDT 2019

Sure it can be done. Unless someone has published a custom bootstrapped application I’m unaware of its going to be labor intensive.

It would end up looking something like this.


On May 13, 2019, at 4:03 AM, Elena Aralla <elena.aralla at gmail.com<mailto:elena.aralla at gmail.com>> wrote:

Thank you all.

So, just to understand:

My product writes registry keys (local machine), files on the file system, its own service, information in its own database (SQLCE) and shortcuts.

I need the setup is able to install multiple instances on the same machine.

When a user launches the setup, it must detect if there are already installed instances and propose the UPGRADE of one of the instances already present or the installation of a NEW INSTANCE (and here it would be important that the user who is making the setup, can choose the name of the instance, to be used to identify the registry keys, the file system, the service and the shortcuts.

Can all this be done with WIX?

Thank you again,

Il giorno 10 mag 2019, alle ore 18:07, Christopher Painter <chrpai at iswix.com<mailto:chrpai at iswix.com>> ha scritto:

Private properties can not be passed into the installer.  It is also immutable once installation begins.  So the only way to change ProductName at install time would be to dynamically generate the transform with a custom ProductName and then apply the transform.

The only other alternative would be to use a bootstrapper to register with Add/Remove Programs and not be overly worried about what the internal productname of the installer is.

I've done many multiple instance installers  over the years and honestly it's really complicated and typically requires a custom bootstrapper at some point to handle all the servicing scenarios unless your willing to keep your story very simple.

From: wix-users <wix-users-bounces at lists.wixtoolset.org<mailto:wix-users-bounces at lists.wixtoolset.org>> on behalf of Elena Aralla via wix-users <wix-users at lists.wixtoolset.org<mailto:wix-users at lists.wixtoolset.org>>
Sent: Friday, May 10, 2019 11:00 AM
To: Edwin Castro
Cc: Elena Aralla; WiX Toolset Users Mailing List
Subject: Re: [wix-users] Multi instance setup

sorry, what I wanted to ask is if the value of the ProductName parameter can be somehow passed as a command line parameter instead of being static in the Product.wsx file

msiexec /i mysetup.msi MSINEWINSTANCE=1 TRANSFORMS=":I01” PRODUCTNAME = “BlahBlah”

<InstanceTransforms Property="INSTANCEID">
      <Instance Id="I01" ProductCode="8168F059-7EB8-4A30-B906-57EE371F523B" ProductName=“[PRODUCTNAME]”/>

thank you,

> Il giorno 10 mag 2019, alle ore 17:46, Edwin Castro <egcastr at gmail.com<mailto:egcastr at gmail.com>> ha scritto:
> ProductName and PRODUCTNAME are different.
> ProductName is a private property.
> See https://docs.microsoft.com/en-us/windows/desktop/msi/private-properties <https://docs.microsoft.com/en-us/windows/desktop/msi/private-properties>
> PRODUCTNAME is a public property.
> See https://docs.microsoft.com/en-us/windows/desktop/msi/public-properties <https://docs.microsoft.com/en-us/windows/desktop/msi/public-properties>
> According to https://docs.microsoft.com/en-us/windows/desktop/msi/productname <https://docs.microsoft.com/en-us/windows/desktop/msi/productname>
> ProductName "can be changed by a transform"
> See https://docs.microsoft.com/en-us/windows/desktop/msi/about-transforms <https://docs.microsoft.com/en-us/windows/desktop/msi/about-transforms>
> --
> Edwin G. Castro
> On Fri, May 10, 2019 at 7:31 AM Elena Aralla via wix-users <wix-users at lists.wixtoolset.org<mailto:wix-users at lists.wixtoolset.org> <mailto:wix-users at lists.wixtoolset.org>> wrote:
> Hello,
> I'm trying to do a multiinstance setup following these directions:
> http://sklyarenko.net/blog/2011/09/14/revisited-multiple-instance/ <http://sklyarenko.net/blog/2011/09/14/revisited-multiple-instance/>
> this is part of my Product.wsx
>   <Product Id="*" Name=“MyAppName" Version=“" Manufacturer=“MyManufacturer" UpgradeCode=        ”SOME GUID">
>     <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" InstallPrivileges="elevated" Languages="0,1040" />
>     <Property Id="INSTANCEID" Value=" " />
>     <InstanceTransforms Property="INSTANCEID">
>       <Instance Id="I01" ProductCode="8168F059-7EB8-4A30-B906-57EE371F523B" ProductName="MyAppName 01"/>
>       <Instance Id="I02" ProductCode="0B25F5B6-D35E-4F2C-95F5-F62B9C9AC98E" ProductName="MyAppName 02"/>
>       <Instance Id="I03" ProductCode="21BFAA6D-3260-4EC6-82E9-04B153C7325F" ProductName="MyAppName 03"/>
>     </InstanceTransforms>
> </Product>
> One question:
> Is it possible to pass the ProductName when calling the installer from the command line?
> Something like
> msiexec /i mysetup.msi MSINEWINSTANCE=1 TRANSFORMS=":I01” PRODUCTNAME = “user choice"
> Thanks a lot,
> Elena.
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/ <http://www.firegiant.com/>

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

More information about the wix-users mailing list