Re: [WiX-users] Instance transforms with the msi

2009-12-10 Thread Uma Harano
Thanks for all the pointers! I grouped the non file data in this recommended 
method and it is working beautifully.
Thanks!
Uma-

-Original Message-
From: John Nannenga [mailto:john.nanne...@microsoft.com] 
Sent: Wednesday, December 09, 2009 7:50 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

Here's the key point from the SDK:

* To keep the nonfile data of each instance isolated, the base package
should collect nonfile data into sets of components for each instance. The
appropriate components should then be installed based on conditional
statements that depend on the instance identifier.

The emphasis here is on nonfile data; which includes (but not limited to) 
shortcuts, registry items, ini items, ODBC items [and the list goes on and on].

You do not 'have' to do this for file data.  The SDK recommendation here is 
to (if you're going to support multiple instances) segregate nonfile data into 
their own components which would then have their own unique component GUIDs and 
installed conditionally based upon the instance identifier.


To answer your question then, Uma:  I find that HKLM\Software\ESRI\Instance1 
is still left behind on the machine after instance 1 is uninstalled.  Is this 
because the component that includes this registry key is still in the installed 
state with the base setup?

I believe that occurs because the component was ref-counted.  What you would 
see then is that when the last instance is uninstalled, the registry 
information for only that instance would be removed, but all the other instance 
registry keys would remain (thus, orphaned).

You can also run into this situation when you upgrade a product and are 
performing 'efficient upgrades' where the registry information location for 
that instance changes.  You'll need to change the component GUID in this 
situation as well.




From: Michael Osmond [mosm...@baytech.com.au]
Sent: Monday, December 07, 2009 5:46 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

Hi

If you are using MSI Instances and installing to different locations, you don't 
need different component GUIDs for each component in each installed instance 
and the reference counting seems to work okay.   I will be honest and say I 
don't know how it works under the hood, but it does work.The installer is 
able to work out where things are.

I do however use a registry key for each instance to keep the path where I 
installed that instance too, which comes in handy on major upgrades.  Also have 
found it usefull to record the product ID of the instance in the registry as 
well.

Michael


From: kelly.le...@milliman.com [kelly.le...@milliman.com]
Sent: Tuesday, 8 December 2009 9:32 AM
To: General discussion for Windows Installer XML toolset.
Cc: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

I wasn't asking about ProductCode.  I'm asking about the component GUID
for the registry key you're referring to.  You need to assign different
GUIDs for all components that could be installed in two locations by the
two different instances.  If you want to install the same files in two
places, you're going to have to modify all the component GUIDs for the
files, if I understand the process correctly.  I'm not an expert on using
instance transforms to install multiple instances, but it seems like no
matter what you do, you can't break the component rules.  Otherwise, it
won't install the files to the new locations, since it will think they
are already installed (based on the component ID and its installed state).

Kelly




Uma Harano uhar...@esri.com

12/07/2009 03:24 PM
Please respond to
General discussion for Windows Installer XML toolset.
wix-users@lists.sourceforge.net


To
General discussion for Windows Installer XML toolset.
wix-users@lists.sourceforge.net
cc

Subject
Re: [WiX-users] Instance transforms with the msi






Each instance has a unique Product Code. Also, I was following the
guidelines from the Windows installer SDK (On how to author instance
transforms).
How do I install the same set of files for multiple instances using
transforms?

Please advise!
Uma-


Here is the windows installer sdk topic on this:


Authoring Multiple Instances with Instance Transforms
To install multiple instances of a product from one Windows(r) Installer
package, you need to author a base installation package for the product
and an instance transform for each instance to be installed in addition to
the base instance. Use the following guidelines when authoring your base
package and transforms:

*Your setup application can check for the presence of the installer
running on a version of the Microsoft(r)Windows Server 2003 family,
Windows XP SP1, Windows 2000 SP4 and the Windows Installer

Re: [WiX-users] Instance transforms with the msi

2009-12-09 Thread John Nannenga
Here's the key point from the SDK:

* To keep the nonfile data of each instance isolated, the base package
should collect nonfile data into sets of components for each instance. The
appropriate components should then be installed based on conditional
statements that depend on the instance identifier.

The emphasis here is on nonfile data; which includes (but not limited to) 
shortcuts, registry items, ini items, ODBC items [and the list goes on and on].

You do not 'have' to do this for file data.  The SDK recommendation here is 
to (if you're going to support multiple instances) segregate nonfile data into 
their own components which would then have their own unique component GUIDs and 
installed conditionally based upon the instance identifier.


To answer your question then, Uma:  I find that HKLM\Software\ESRI\Instance1 
is still left behind on the machine after instance 1 is uninstalled.  Is this 
because the component that includes this registry key is still in the installed 
state with the base setup?

I believe that occurs because the component was ref-counted.  What you would 
see then is that when the last instance is uninstalled, the registry 
information for only that instance would be removed, but all the other instance 
registry keys would remain (thus, orphaned).

You can also run into this situation when you upgrade a product and are 
performing 'efficient upgrades' where the registry information location for 
that instance changes.  You'll need to change the component GUID in this 
situation as well.




From: Michael Osmond [mosm...@baytech.com.au]
Sent: Monday, December 07, 2009 5:46 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

Hi

If you are using MSI Instances and installing to different locations, you don't 
need different component GUIDs for each component in each installed instance 
and the reference counting seems to work okay.   I will be honest and say I 
don't know how it works under the hood, but it does work.The installer is 
able to work out where things are.

I do however use a registry key for each instance to keep the path where I 
installed that instance too, which comes in handy on major upgrades.  Also have 
found it usefull to record the product ID of the instance in the registry as 
well.

Michael


From: kelly.le...@milliman.com [kelly.le...@milliman.com]
Sent: Tuesday, 8 December 2009 9:32 AM
To: General discussion for Windows Installer XML toolset.
Cc: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

I wasn't asking about ProductCode.  I'm asking about the component GUID
for the registry key you're referring to.  You need to assign different
GUIDs for all components that could be installed in two locations by the
two different instances.  If you want to install the same files in two
places, you're going to have to modify all the component GUIDs for the
files, if I understand the process correctly.  I'm not an expert on using
instance transforms to install multiple instances, but it seems like no
matter what you do, you can't break the component rules.  Otherwise, it
won't install the files to the new locations, since it will think they
are already installed (based on the component ID and its installed state).

Kelly




Uma Harano uhar...@esri.com

12/07/2009 03:24 PM
Please respond to
General discussion for Windows Installer XML toolset.
wix-users@lists.sourceforge.net


To
General discussion for Windows Installer XML toolset.
wix-users@lists.sourceforge.net
cc

Subject
Re: [WiX-users] Instance transforms with the msi






Each instance has a unique Product Code. Also, I was following the
guidelines from the Windows installer SDK (On how to author instance
transforms).
How do I install the same set of files for multiple instances using
transforms?

Please advise!
Uma-


Here is the windows installer sdk topic on this:


Authoring Multiple Instances with Instance Transforms
To install multiple instances of a product from one Windows(r) Installer
package, you need to author a base installation package for the product
and an instance transform for each instance to be installed in addition to
the base instance. Use the following guidelines when authoring your base
package and transforms:

*Your setup application can check for the presence of the installer
running on a version of the Microsoft(r)Windows Server 2003 family,
Windows XP SP1, Windows 2000 SP4 and the Windows Installer 3.0
redistributable. Any of these installer versions (or later) are required
to install multiple instances from a single package using a product
code-changing transform.
* Each instance must have a unique product code and instance identifier.
You may define a property in the base package, the value of which can be
set to the instance identifier.
* To keep the files

[WiX-users] Instance transforms with the msi

2009-12-07 Thread Uma Harano
Hi,
I am using instance transforms (msts) to install multiple instances of my base 
product (msi) on the same machine.

Everything works except for one issue:
I use an instance identifier property [INSTANCEPROP] that gets set 
toInstance1, Instance 2,...etc for each instance. I use this property to 
write registry keys for each instance. For example - 
HKLM\Software\ESRI\[INSTANCEPROP] is written via the registry table (One record 
in the registry table to linked to one component). When multiple instances are 
installed, this key could be repeated multiple times, but they would all be in 
their own hive
HKLM\Software\ESRI\ Instance1
HKLM\Software\ESRI\ Instance2
HKLM\Software\ESRI\ Instance3
Etc

Scenario:
The base setup and an instance 1 is installed, I uninstall the instance 1. I 
find that HKLM\Software\ESRI\Instance1 is still left behind on the machine 
after instance 1 is uninstalled.  Is this because the component that includes 
this registry key is still in the installed state with the base setup?
What would be the best way to ensure that the HKLM\Software\ESRI\Instance1 get 
removed when instance 1 is uninstalled? Should I make multiple components in 
the msi each with unique conditions for each transform? Or create a custom 
action that deletes the registry entry for each transform?

Thanks!
Uma Harano

--
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Instance transforms with the msi

2009-12-07 Thread Kelly . Leahy
Are you using the same component GUID for each of these keys?  You can't 
do that...  It's breaking the component rules and all kinds of bad things 
happen when you break the component rules.

Each distinct component keypath (the 'main' entry in a component) MUST 
have a unique component GUID.  Each distinct component GUID can only be 
installed in one place on a given machine (you can't try to install the 
same GUID to two different keypaths).

Kelly




Uma Harano uhar...@esri.com 

12/07/2009 02:47 PM
Please respond to
General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net


To
General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
cc

Subject
[WiX-users] Instance transforms with the msi






Hi,
I am using instance transforms (msts) to install multiple instances of my 
base product (msi) on the same machine.

Everything works except for one issue:
I use an instance identifier property [INSTANCEPROP] that gets set 
toInstance1, Instance 2,...etc for each instance. I use this property 
to write registry keys for each instance. For example - 
HKLM\Software\ESRI\[INSTANCEPROP] is written via the registry table (One 
record in the registry table to linked to one component). When multiple 
instances are installed, this key could be repeated multiple times, but 
they would all be in their own hive
HKLM\Software\ESRI\ Instance1
HKLM\Software\ESRI\ Instance2
HKLM\Software\ESRI\ Instance3
Etc

Scenario:
The base setup and an instance 1 is installed, I uninstall the instance 1. 
I find that HKLM\Software\ESRI\Instance1 is still left behind on the 
machine after instance 1 is uninstalled.  Is this because the component 
that includes this registry key is still in the installed state with the 
base setup?
What would be the best way to ensure that the HKLM\Software\ESRI\Instance1 
get removed when instance 1 is uninstalled? Should I make multiple 
components in the msi each with unique conditions for each transform? Or 
create a custom action that deletes the registry entry for each transform?

Thanks!
Uma Harano

--
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users




**
This communication is intended solely for the addressee and is
confidential. If you are not the intended recipient, any disclosure, 
copying, distribution or any action taken or omitted to be taken in
reliance on it, is prohibited and may be unlawful. Unless indicated
to the contrary: it does not constitute professional advice or opinions
upon which reliance may be made by the addressee or any other party,
and it should be considered to be a work in progress. Unless otherwise
noted in this email or its attachments, this communication does not form 
a Statement of Actuarial Opinion under American Academy of Actuaries guidelines.
**
--
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Instance transforms with the msi

2009-12-07 Thread Uma Harano
Each instance has a unique Product Code. Also, I was following the guidelines 
from the Windows installer SDK (On how to author instance transforms).
How do I install the same set of files for multiple instances using transforms?

Please advise!
Uma-


Here is the windows installer sdk topic on this:


Authoring Multiple Instances with Instance Transforms
To install multiple instances of a product from one Windows(r) Installer 
package, you need to author a base installation package for the product and an 
instance transform for each instance to be installed in addition to the base 
instance. Use the following guidelines when authoring your base package and 
transforms:

*Your setup application can check for the presence of the installer running on 
a version of the Microsoft(r)Windows Server 2003 family, Windows XP SP1, 
Windows 2000 SP4 and the Windows Installer 3.0 redistributable. Any of these 
installer versions (or later) are required to install multiple instances from a 
single package using a product code-changing transform. 
* Each instance must have a unique product code and instance identifier. You 
may define a property in the base package, the value of which can be set to the 
instance identifier. 
* To keep the files of each instance isolated, the base package should install 
files into a directory location that depends on the instance identifier. 
* To keep the nonfile data of each instance isolated, the base package should 
collect nonfile data into sets of components for each instance. The appropriate 
components should then be installed based on conditional statements that depend 
on the instance identifier. 
* Author an instance transform for each instance being installed in addition to 
the base instance. The base package may install its own instance. 
* The instance transform must change the product code and identifier for each 
instance. 
* It is recommended that the product transform also change the product name so 
that the instance is readily distinguished in Add/Remove Programs through 
Control Panel. 
* If the instance transform installs files, they should be installed in a 
directory that depends on the instance identifier. 
* All nonfile data, such as registry keys, should include the instance name in 
their path to prevent collisions. This can be accomplished by using the 
property whose value is the instance identifier in the path as shown by the 
following example of a Registry Table.


-Original Message-
From: kelly.le...@milliman.com [mailto:kelly.le...@milliman.com] 
Sent: Monday, December 07, 2009 2:52 PM
To: General discussion for Windows Installer XML toolset.
Cc: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

Are you using the same component GUID for each of these keys?  You can't 
do that...  It's breaking the component rules and all kinds of bad things 
happen when you break the component rules.

Each distinct component keypath (the 'main' entry in a component) MUST 
have a unique component GUID.  Each distinct component GUID can only be 
installed in one place on a given machine (you can't try to install the 
same GUID to two different keypaths).

Kelly




Uma Harano uhar...@esri.com 

12/07/2009 02:47 PM
Please respond to
General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net


To
General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
cc

Subject
[WiX-users] Instance transforms with the msi






Hi,
I am using instance transforms (msts) to install multiple instances of my 
base product (msi) on the same machine.

Everything works except for one issue:
I use an instance identifier property [INSTANCEPROP] that gets set 
toInstance1, Instance 2,...etc for each instance. I use this property 
to write registry keys for each instance. For example - 
HKLM\Software\ESRI\[INSTANCEPROP] is written via the registry table (One 
record in the registry table to linked to one component). When multiple 
instances are installed, this key could be repeated multiple times, but 
they would all be in their own hive
HKLM\Software\ESRI\ Instance1
HKLM\Software\ESRI\ Instance2
HKLM\Software\ESRI\ Instance3
Etc

Scenario:
The base setup and an instance 1 is installed, I uninstall the instance 1. 
I find that HKLM\Software\ESRI\Instance1 is still left behind on the 
machine after instance 1 is uninstalled.  Is this because the component 
that includes this registry key is still in the installed state with the 
base setup?
What would be the best way to ensure that the HKLM\Software\ESRI\Instance1 
get removed when instance 1 is uninstalled? Should I make multiple 
components in the msi each with unique conditions for each transform? Or 
create a custom action that deletes the registry entry for each transform?

Thanks!
Uma Harano

--
Return on Information:
Google Enterprise

Re: [WiX-users] Instance transforms with the msi

2009-12-07 Thread Kelly . Leahy
I wasn't asking about ProductCode.  I'm asking about the component GUID 
for the registry key you're referring to.  You need to assign different 
GUIDs for all components that could be installed in two locations by the 
two different instances.  If you want to install the same files in two 
places, you're going to have to modify all the component GUIDs for the 
files, if I understand the process correctly.  I'm not an expert on using 
instance transforms to install multiple instances, but it seems like no 
matter what you do, you can't break the component rules.  Otherwise, it 
won't install the files to the new locations, since it will think they 
are already installed (based on the component ID and its installed state).

Kelly




Uma Harano uhar...@esri.com 

12/07/2009 03:24 PM
Please respond to
General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net


To
General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
cc

Subject
Re: [WiX-users] Instance transforms with the msi






Each instance has a unique Product Code. Also, I was following the 
guidelines from the Windows installer SDK (On how to author instance 
transforms).
How do I install the same set of files for multiple instances using 
transforms?

Please advise!
Uma-


Here is the windows installer sdk topic on this:


Authoring Multiple Instances with Instance Transforms
To install multiple instances of a product from one Windows(r) Installer 
package, you need to author a base installation package for the product 
and an instance transform for each instance to be installed in addition to 
the base instance. Use the following guidelines when authoring your base 
package and transforms:

*Your setup application can check for the presence of the installer 
running on a version of the Microsoft(r)Windows Server 2003 family, 
Windows XP SP1, Windows 2000 SP4 and the Windows Installer 3.0 
redistributable. Any of these installer versions (or later) are required 
to install multiple instances from a single package using a product 
code-changing transform. 
* Each instance must have a unique product code and instance identifier. 
You may define a property in the base package, the value of which can be 
set to the instance identifier. 
* To keep the files of each instance isolated, the base package should 
install files into a directory location that depends on the instance 
identifier. 
* To keep the nonfile data of each instance isolated, the base package 
should collect nonfile data into sets of components for each instance. The 
appropriate components should then be installed based on conditional 
statements that depend on the instance identifier. 
* Author an instance transform for each instance being installed in 
addition to the base instance. The base package may install its own 
instance. 
* The instance transform must change the product code and identifier for 
each instance. 
* It is recommended that the product transform also change the product 
name so that the instance is readily distinguished in Add/Remove Programs 
through Control Panel. 
* If the instance transform installs files, they should be installed in a 
directory that depends on the instance identifier. 
* All nonfile data, such as registry keys, should include the instance 
name in their path to prevent collisions. This can be accomplished by 
using the property whose value is the instance identifier in the path as 
shown by the following example of a Registry Table.


-Original Message-
From: kelly.le...@milliman.com [mailto:kelly.le...@milliman.com] 
Sent: Monday, December 07, 2009 2:52 PM
To: General discussion for Windows Installer XML toolset.
Cc: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

Are you using the same component GUID for each of these keys?  You can't 
do that...  It's breaking the component rules and all kinds of bad things 
happen when you break the component rules.

Each distinct component keypath (the 'main' entry in a component) MUST 
have a unique component GUID.  Each distinct component GUID can only be 
installed in one place on a given machine (you can't try to install the 
same GUID to two different keypaths).

Kelly




Uma Harano uhar...@esri.com 

12/07/2009 02:47 PM
Please respond to
General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net


To
General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
cc

Subject
[WiX-users] Instance transforms with the msi






Hi,
I am using instance transforms (msts) to install multiple instances of my 
base product (msi) on the same machine.

Everything works except for one issue:
I use an instance identifier property [INSTANCEPROP] that gets set 
toInstance1, Instance 2,...etc for each instance. I use this property 
to write registry keys for each instance. For example - 
HKLM\Software\ESRI\[INSTANCEPROP

Re: [WiX-users] Instance transforms with the msi

2009-12-07 Thread Michael Osmond
Hi

If you are using MSI Instances and installing to different locations, you don't 
need different component GUIDs for each component in each installed instance 
and the reference counting seems to work okay.   I will be honest and say I 
don't know how it works under the hood, but it does work.The installer is 
able to work out where things are.

I do however use a registry key for each instance to keep the path where I 
installed that instance too, which comes in handy on major upgrades.  Also have 
found it usefull to record the product ID of the instance in the registry as 
well.

Michael


From: kelly.le...@milliman.com [kelly.le...@milliman.com]
Sent: Tuesday, 8 December 2009 9:32 AM
To: General discussion for Windows Installer XML toolset.
Cc: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

I wasn't asking about ProductCode.  I'm asking about the component GUID
for the registry key you're referring to.  You need to assign different
GUIDs for all components that could be installed in two locations by the
two different instances.  If you want to install the same files in two
places, you're going to have to modify all the component GUIDs for the
files, if I understand the process correctly.  I'm not an expert on using
instance transforms to install multiple instances, but it seems like no
matter what you do, you can't break the component rules.  Otherwise, it
won't install the files to the new locations, since it will think they
are already installed (based on the component ID and its installed state).

Kelly




Uma Harano uhar...@esri.com

12/07/2009 03:24 PM
Please respond to
General discussion for Windows Installer XML toolset.
wix-users@lists.sourceforge.net


To
General discussion for Windows Installer XML toolset.
wix-users@lists.sourceforge.net
cc

Subject
Re: [WiX-users] Instance transforms with the msi






Each instance has a unique Product Code. Also, I was following the
guidelines from the Windows installer SDK (On how to author instance
transforms).
How do I install the same set of files for multiple instances using
transforms?

Please advise!
Uma-


Here is the windows installer sdk topic on this:


Authoring Multiple Instances with Instance Transforms
To install multiple instances of a product from one Windows(r) Installer
package, you need to author a base installation package for the product
and an instance transform for each instance to be installed in addition to
the base instance. Use the following guidelines when authoring your base
package and transforms:

*Your setup application can check for the presence of the installer
running on a version of the Microsoft(r)Windows Server 2003 family,
Windows XP SP1, Windows 2000 SP4 and the Windows Installer 3.0
redistributable. Any of these installer versions (or later) are required
to install multiple instances from a single package using a product
code-changing transform.
* Each instance must have a unique product code and instance identifier.
You may define a property in the base package, the value of which can be
set to the instance identifier.
* To keep the files of each instance isolated, the base package should
install files into a directory location that depends on the instance
identifier.
* To keep the nonfile data of each instance isolated, the base package
should collect nonfile data into sets of components for each instance. The
appropriate components should then be installed based on conditional
statements that depend on the instance identifier.
* Author an instance transform for each instance being installed in
addition to the base instance. The base package may install its own
instance.
* The instance transform must change the product code and identifier for
each instance.
* It is recommended that the product transform also change the product
name so that the instance is readily distinguished in Add/Remove Programs
through Control Panel.
* If the instance transform installs files, they should be installed in a
directory that depends on the instance identifier.
* All nonfile data, such as registry keys, should include the instance
name in their path to prevent collisions. This can be accomplished by
using the property whose value is the instance identifier in the path as
shown by the following example of a Registry Table.


-Original Message-
From: kelly.le...@milliman.com [mailto:kelly.le...@milliman.com]
Sent: Monday, December 07, 2009 2:52 PM
To: General discussion for Windows Installer XML toolset.
Cc: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

Are you using the same component GUID for each of these keys?  You can't
do that...  It's breaking the component rules and all kinds of bad things
happen when you break the component rules.

Each distinct component keypath (the 'main' entry in a component) MUST
have a unique component GUID

Re: [WiX-users] Instance transforms with the msi

2009-12-07 Thread Yan Sklyarenko
See if this can be of any help for you:
http://ysdevlog.blogspot.com/2008/12/multiple-instance-installations-and
.html
It works for me.

-- Yan

-Original Message-
From: Uma Harano [mailto:uhar...@esri.com] 
Sent: Tuesday, December 08, 2009 01:24
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

Each instance has a unique Product Code. Also, I was following the
guidelines from the Windows installer SDK (On how to author instance
transforms).
How do I install the same set of files for multiple instances using
transforms?

Please advise!
Uma-


Here is the windows installer sdk topic on this:


Authoring Multiple Instances with Instance Transforms
To install multiple instances of a product from one Windows(r) Installer
package, you need to author a base installation package for the product
and an instance transform for each instance to be installed in addition
to the base instance. Use the following guidelines when authoring your
base package and transforms:

*Your setup application can check for the presence of the installer
running on a version of the Microsoft(r)Windows Server 2003 family,
Windows XP SP1, Windows 2000 SP4 and the Windows Installer 3.0
redistributable. Any of these installer versions (or later) are required
to install multiple instances from a single package using a product
code-changing transform. 
* Each instance must have a unique product code and instance identifier.
You may define a property in the base package, the value of which can be
set to the instance identifier. 
* To keep the files of each instance isolated, the base package should
install files into a directory location that depends on the instance
identifier. 
* To keep the nonfile data of each instance isolated, the base package
should collect nonfile data into sets of components for each instance.
The appropriate components should then be installed based on conditional
statements that depend on the instance identifier. 
* Author an instance transform for each instance being installed in
addition to the base instance. The base package may install its own
instance. 
* The instance transform must change the product code and identifier for
each instance. 
* It is recommended that the product transform also change the product
name so that the instance is readily distinguished in Add/Remove
Programs through Control Panel. 
* If the instance transform installs files, they should be installed in
a directory that depends on the instance identifier. 
* All nonfile data, such as registry keys, should include the instance
name in their path to prevent collisions. This can be accomplished by
using the property whose value is the instance identifier in the path as
shown by the following example of a Registry Table.


-Original Message-
From: kelly.le...@milliman.com [mailto:kelly.le...@milliman.com] 
Sent: Monday, December 07, 2009 2:52 PM
To: General discussion for Windows Installer XML toolset.
Cc: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Instance transforms with the msi

Are you using the same component GUID for each of these keys?  You can't

do that...  It's breaking the component rules and all kinds of bad
things 
happen when you break the component rules.

Each distinct component keypath (the 'main' entry in a component) MUST 
have a unique component GUID.  Each distinct component GUID can only be 
installed in one place on a given machine (you can't try to install the 
same GUID to two different keypaths).

Kelly




Uma Harano uhar...@esri.com 

12/07/2009 02:47 PM
Please respond to
General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net


To
General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
cc

Subject
[WiX-users] Instance transforms with the msi






Hi,
I am using instance transforms (msts) to install multiple instances of
my 
base product (msi) on the same machine.

Everything works except for one issue:
I use an instance identifier property [INSTANCEPROP] that gets set 
toInstance1, Instance 2,...etc for each instance. I use this
property 
to write registry keys for each instance. For example - 
HKLM\Software\ESRI\[INSTANCEPROP] is written via the registry table (One

record in the registry table to linked to one component). When multiple 
instances are installed, this key could be repeated multiple times, but 
they would all be in their own hive
HKLM\Software\ESRI\ Instance1
HKLM\Software\ESRI\ Instance2
HKLM\Software\ESRI\ Instance3
Etc

Scenario:
The base setup and an instance 1 is installed, I uninstall the instance
1. 
I find that HKLM\Software\ESRI\Instance1 is still left behind on the 
machine after instance 1 is uninstalled.  Is this because the component 
that includes this registry key is still in the installed state with the

base setup?
What would be the best way to ensure that the
HKLM\Software\ESRI\Instance1 
get removed