Hello Amy,
I have been through this, here's my experience. By the way, if some one can
tell me there's a better way, I'd love to know.
Most of this is not wix specific, but can be implemented with WIX. Some of it
is bootstrap stuff.
I assume you want to upgrade each instance independently and possibly not in
the same order you installed them.
The biggest issue when it comes to major upgrade is that because an instance
has the same UpgradeCode but a different ProductCode, it can look like another
version of the product, so the FindRelatedProduct action will find all of the
existing Instances when any instance is being upgraded. The danger with this
is that the first instance to be upgraded will upgrade one instance and remove
all other instances at RemoveExistingProduct. I protect against this by having
the install write its product code to the registry. I read this in on each
install. I let FindRelatedProduct do its work, but then I overwrite the list
found by FindRelatedProduct with my instance.
The second thing is that you need to change the ProductCode for each of your
instance transforms, otherwise the ProductCode is not changing for the instance
which is not a Major Upgrade. This can be really messy.
The third thing is that you now have to boot strap the MSI correctly - with the
correct transform for the particular instance you are updating based on the
user making a selection. So my bootstrapper (which is a HTA) uses the
Installer.RelatedProduct property (in the Automation Interface) to get the
instances installed, and then lets the user select which they want to upgrade.
To do this the bootstrap must have a mapping of the existing ProductCode of an
existing instance to the command string that upgrades that particular instance
to its new instance.
The command line for the major upgrade will need to have MSINEWINSTANCE=1 and
TRANSFORMS=<new or updated transform>. You might have to experiment a bit
with the original non-instance install (it doesn't need either of these).
By the way, if by chance you want to install a new instance with the new
version (ie you have instances of the old version on the system and you want to
add a further instance but with the new version) be carefull.
FindRelatedProducts will still kick in and find the old versions even though
you think its just installing, end result is that it removes the old instances.
I actually do all my instance installs with a property called CLEAN=1 which I
use to stop FindRelatedProducts from running.
I have also had some problems with MigrateFeatuerState seeming to give me the
union of features selected for different instances, but I really haven't got to
the bottom of that one.
I hope that helps and I would like to know if you learn anything, or find a
better way to do it.
Regards
Michael
________________________________
From: Amy Rosewater [mailto:arosewa...@spectrumhr.com]
Sent: Fri 20/02/2009 3:18 AM
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] question about upgrades and instance transforms
Hi All,
I am in the process of making the necessary changes to my installer to
make it support a major upgrade.
I have found several resources describing the creation of a major
upgrade, and I think I understand at least for the default instance of
my product, how to write the Wix required to make this work. However,
in my application I have supported multiple side by side installations
through the use of embedded transforms created by the Wix nodes
<InstanceTransforms> and <Instance...>.
Is there anything that I need to do differently in the creation of a
major upgrade installer so that it will work correctly with transformed
instances of my original install?
Thanks in advance,
Amy
Amy Rosewater
SPECTRUM Human Resource Systems Corporation
707 17th Street Suite 3800
Denver CO, 80202
303.592.3403
arosewa...@spectrumhr.com
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users