Essentially "two installers listing the same component GUID in separate
locations" is how things like the VC++ redistributable merge modules
work.

For example, your installer puts the VC++ 2008 redistributables onto a
users machine. My installer then does the same. Both of our installers
use the merge modules. The user then uninstalls your application but my
application still works fine. Why? Because the Windows Installer tracks
how many applications have installed the same components & will only
remove components when there are no applications left installed which
require them (annoyingly this is called "Shared DLL reference counting"
when it actually refers to Components which can contain anything not
just DLL's). This is explained in the Remarks section of the Component
Table page on MSDN ->
http://msdn.microsoft.com/en-us/library/aa368007.aspx

Personally I have a number of fragments shared between 2 installers
however in our situation you can have only one or the other installed &
I use the major upgrade functionality to ensure a one way upgrade path
from the smaller package to the larger one. I could create a wixlib (or
merge module) containing the shared fragments & then consume it in both
installers but as I have my project files in the same directory it works
fine as is using Votive (and saves the extra build step of creating the
wixlib/merge module). If your projects are in different directories
however you will find Visual Studio will make a copy of the file into
the second directory when you add it to your second project (hence why I
have both project files in the same directory to avoid having to update
2 copies of the same code).

Depending on how many people need to build your code on a regular basis
you may find implementing the shared code in a wixlib (or merge module)
a more robust solution.

Good luck.

Palbinder Sandher 
Software Deployment & IT Administrator
T: +44 (0) 141 945 8500 
F: +44 (0) 141 945 8501 

http://www.iesve.com 
**Design, Simulate + Innovate with the <Virtual Environment>**
Integrated Environmental Solutions Limited. Registered in Scotland No.
SC151456 
Registered Office - Helix Building, West Of Scotland Science Park,
Glasgow G20 0SP
Email Disclaimer

-----Original Message-----
From: JKLists [mailto:jkli...@ifm-services.com] 
Sent: 20 November 2009 23:09
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Shared assemblies

If I had two applications which shared some core assemblies, how would
these handled between two installers? If I shared a WiX  fragment source
file between two WiX projects, the components would have the same GUIDs.

Would that cause a problem or conflict? Could the two projects be
installed, for example, on two separate drive letters? I'm not sure if
MSI insists on having only one instance of a component with a particular
GUID, or if it tolerates two installers listing the same component GUID
in separate locations.

Any recommendations on how this is supposed to be handled?

Thanks!

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to