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"<[email protected]>
>
> Sent: Saturday, December 24, 2011 4:03 AM
>
> To: [email protected]
>
> 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:[email protected]]
>
>> Sent: 23 December 2011 13:42
>
>> To: [email protected]
>
>> 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
>
>> [email protected]
>
>> 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
>
> [email protected]
>
> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users