Are you redistributing these merge module or are they only for internal use in 
order to break out your installer into more composable / manageable peices?

Everything I say is meant for the latter  not the former:

For Custom Actions,  follow the table data driven design and put the custom 
action and sequencing in one merge module ( FooCAEngine.msm ) and put the 
actual 
table data rows in the modules that need it.  Give those modules a dependency 
on 
the Engine.   If you are using C#/DTF you will have a packaging overhead 
for each CA.dll so you might want to lump related CA's into 1 Engine 
MSM.   It's 
ok because without any table data they should end up doing nothing.

For the UI story, I follow an IoC like design where I have a cusom table 
called  
DialogOrder.  It looks something like this:

Dialog_ Sequence Condition
Welcome 100 Not Installed
LicenseAgreement 200 Not Installed and ShowLicenseDlg
CustomerInformation 300 Not Installed and ShowCustomerInformationDlg

I have some C++ custom actions ( C#/DTF is too slow for this, it feels sluggish 
) called GetFirstDialog, GetNextDialog and GetBackDialog.  They set properties 
like  CurrentDialog, NextDialog, PreviousDialog ( I'd have to look at the code 
to make sure that's right )   Then in my installer I changed all of the control 
events from  


NewDialog  SomeDialog SomeCondition

to.... 

DoAction GetNextDialog 1
NewDialog [NextDialog]

I'm probably leaving some details out that but that's probably enough 
information.

This allows me to author a merge module with a dialog that inserts itself into 
the DialogOrder table and it can be conditionally called with minimal 
coupling.  
It's not perfect and it would never scale as a redistributable for other 
installers but for my own installer product line it works just fine.

Chris

---
Christopher Painter, Author of Deployment Engineering Blog
Have a hot tip, know a secret or read a really good thread that deserves 
attention? E-Mail Me



----- Original Message ----
From: Stelios Kyprou <stelios.kyp...@formicary.net>
To: General discussion for Windows Installer XML toolset. 
<wix-users@lists.sourceforge.net>
Sent: Thu, March 17, 2011 5:51:33 AM
Subject: [WiX-users] Merge Modules and Custom actions design

Hello,

I'm new to Merge Modules, and I was trying to figure out what is the best way 
to 
create ones.
Let's say I have 2 merge modules. Module A needs a database, and Module B needs 
to make a URL reservation.
My concerns are:
1) The custom actions for doing what the Modules need (db and url creation) 
should be done in the merge modules, or in the installer that uses them?
2) As far as I know from reading, Merge modules should not have a UI. SO:
        i) The Installer should grab what is needed via the UI, and pass the 
properties to the Merge Modules, to use in their Custom Actions. Correct? If 
so, 
That means that there is a dependency of my merge module with the installer 
(i.e. the person writing the installer, HAS to know what properties to set 
[needed by the Module], so that the merge module works correctly). Is there a 
way to avoid this? Or is this the expected way?

Thanks, SK
________________________________

This message is confidential and may be privileged. It is intended solely for 
the named addressee. If you are not the intended recipient, please inform us. 
Any unauthorised dissemination, distribution or copying hereof is prohibited. 
Formicary Limited registered office in England and Wales, address 1 Taillar 
Road, Hedon, East Yorkshire HU12 8GU, registration number 3894343, VAT number 
747644304, does not guarantee that the integrity of this communication has been 
maintained nor that this communication is free of viruses, interceptions or 
interference.

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



      

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to