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