Christopher,

Thanks for explanation. This demystifies the MSM a lot.

But I still get one open question. When the merge module is used, I add 
a <MergeRef> to the Feature section and a <Merge> to the Directory 
section where the files from the module should be installed. If the 
merge module has a <DirectoryRef> to "MergeRedirectFolder" then this 
reference is resolved as the directory determined by the location of 
<Merge>.

So when I want to add two tools to a product with this directory tree:

PogramFilesFolder
     Company
         Product
             ToolA
             ToolB

I can build the directory structure in the Products wxs file and place 
the <Merge>s to the appropriate location.

The tools can also be used as stand-alone programs, what requires in 
addition to the wixlib files a .wxs that builds the tool installer. I 
wouldn't care about the install location and name it INSTALLLOCATION in 
that case. Do I have to use global unique names for the DirectoryRef in 
the wixlibs to make it reusable or can I redirect this somehow in the 
.wxs files where I refer the wixlibs?

Andy

Am 24.12.2011 14:34, schrieb Christopher Painter:
> What you are calling a "common componet" is called a "shared component" in
> all of the MSDN docs.    A merge module is merely an MSI database that
> serves as an encapsulation of a collection of globally unique components.
> A merge module with have information like directories, files, registry,
> shortcuts, services but it won't have any information related to features
> or products.  You associate a merge module to one or more features in your
> product ( one of them is considered primary ) and merge the MSM into the
> MSI at build time  so that all of the components in that module get
> associated ( FeatureComponents table ) to the features in the MSI.   Once
> this is done the merge module is no longer needed and doesn't exist in the
> MSI.  In otherwords the merge module doesn't get "installed" as if it's
> some object with a .Install() method.
>
>
> Merge modules were the original technique that Microsoft came up with to
> package up a shared component and reuse it with multiple MSIs.  It is still
> needed to share components with MSIs written with different tools.
> However, if you are staying in a WiX only world,  you can use other
> techniques such as fragments and libraries  to do this within WiX at the
> source and linker layers prior to generating MSIs.
>
> ----------------------------------------
>
> From: "Andreas"<andreassand...@gmx.net>
>
> Sent: Saturday, December 24, 2011 4:03 AM
>
> To: wix-users@lists.sourceforge.net
>
> Subject: Re: [WiX-users] Cascading Merge Modules
>
>
> David,
>
>
> Thanks for your reply. I always thought that MSM is used for a "common
>
> component" that can be installed from different MSI installers. The
>
> "common component" should be uninstalled when the last MSI is unstalled
>
> using a kind of reference management.
>
>
> Your proposal uses a different approach. The wixlib adds some components
>
> to the MSI that are installed as like it is a part of the product
>
> itself. I gave it a try and it works. Obviously the reference management
>
> is performed on component level not on any kind of merge module level.
>
> - Can you confirm this?
>
> - Is the MSM completely integrated in the MSI file and does it give no
>
> kind of "grouping", "isolation of any kind" or so?
>
>
> So I assume I would only use MSM when I have to cooperate with an
>
> installer tool other that WiX.
>
>
> Andy
>
>
> Am 23.12.2011 15:10, schrieb David Watson:
>
>> Hi,
>
>> You only need to use merge modules if you want to supply them to third
>
>> parties for use in their installations that do not use wix.
>
>> If you do not have this requirement then you can split your installer up
> to
>
>> use a Base and tool wixlib when then can be linked into the tool and
> product
>
>> MSIs. Think of a wixlib as a c static linked library, you would have two
>
>> separate ones and link them both into the resultant MSI.
>
>>
>
>> You can also have several wix fragments and build each MSI from combining
> the
>
>> appropriate source files without bothering with a wixlib.
>
>>
>
>> Dave
>
>>
>
>> -----Original Message-----
>
>> From: Andreas [mailto:andreassand...@gmx.net]
>
>> Sent: 23 December 2011 13:42
>
>> To: wix-users@lists.sourceforge.net
>
>> Subject: [WiX-users] Cascading Merg Modules
>
>>
>
>> I have a question about design of installer and merge modules.
>
>> I have a COM server as base component. This is reusable and must be used
>
>> a by a tool. Further this tool may be part of a product.
>
>>
>
>> BaseComponent + Tool ->   ToolInstaller
>
>> BaseComponent + Tool + Application ->   ProductInstaller
>
>>
>
>> I want to design the best set of WiX projects. Since the base component
>
>> is reusable it should be implemented with a merge module, shouldn't it?
>
>> When I build the tool installer I will use a WiX product project to
>
>> generate a MSI file. But how should I integrate the tool installation in
>
>> the product? One solution would be a tool merge module. But does the
>
>> product always have to add the tool merge module and the base component
>
>> merge module. Or can I design the tool merge module to "include" the
>
>> base component?
>
>>
>
>> How can a wix library help here?
>
>>
>
>>
>
>>
> ----------------------------------------------------------------------------
> -
>
>> -
>
>> Write once. Port to many.
>
>> Get the SDK and tools to simplify cross-platform app development. Create
>
>> new or port existing apps to sell to consumers worldwide. Explore the
>
>> Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
>
>> http://p.sf.net/sfu/intel-appdev
>
>> _______________________________________________
>
>> WiX-users mailing list
>
>> WiX-users@lists.sourceforge.net
>
>> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>> SDL PLC confidential, all rights reserved.
>
>> If you are not the intended recipient of this mail SDL requests and
> requires that you delete it without acting upon or copying any of its
> contents, and we further request that you advise us.
>
>> SDL PLC is a public limited company registered in England and Wales.
> Registered number: 02675207.
>
>> Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire
> SL6 7DY, UK.
>
>>
>
>>
>
>>
> ----------------------------------------------------------------------------
> --
>
>> Write once. Port to many.
>
>> Get the SDK and tools to simplify cross-platform app development. Create
>
>> new or port existing apps to sell to consumers worldwide. Explore the
>
>> Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
>
>> http://p.sf.net/sfu/intel-appdev
>
>
> ----------------------------------------------------------------------------
> --
>
> Write once. Port to many.
>
> Get the SDK and tools to simplify cross-platform app development. Create
>
> new or port existing apps to sell to consumers worldwide. Explore the
>
> Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
>
> http://p.sf.net/sfu/intel-appdev
>
> _______________________________________________
>
> WiX-users mailing list
>
> WiX-users@lists.sourceforge.net
>
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> ------------------------------------------------------------------------------
> Write once. Port to many.
> Get the SDK and tools to simplify cross-platform app development. Create
> new or port existing apps to sell to consumers worldwide. Explore the
> Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
> http://p.sf.net/sfu/intel-appdev



------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to