Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

UI in Merge Module


1 reply to this topic

John O

John O
  • Members
  • 11 posts

Posted 31 January 2004 - 01:59

Microsoft docs say:

Merge modules require a user interface in only rare cases. Including a UI with a merge module is not recommended. In cases where a user interface is required, the UI tables can be merged into the .msi file the same as other tables.

However, I have a situation where our merge object requires some configuration. Are they suggesting that everyone (3rd party developers) would have to implement our UI for us, or is it not unreasonable to have UI in the merge module when appropriate?

Second question is how do I accomplish this? I am using Visual Studio Installer which does not have a UI option for merge modules. Must I manually add the UI to the .msm? I'm considering adding this as a custom action, but am concerned that this is a bad design.

Can't find any information on this. Thanks for any suggestions.

John

hteichert

hteichert
  • Members
  • 158 posts

Posted 02 February 2004 - 09:42

The big problem with integrating UI in a MergeModule is the way that dialogs work:
One dialog connects to the next (or previous) in the dialog sequence via control events (normally "NewDialog").

For example:
You want a dialog MyMSMDialog to be included in your MergeModule and this dialog shall be included in a setup with an already existing dialog sequence:
Dialog1 <-> Dialog2 <-> Dialog3
MyMSMDialog shall be inserted between Dialog2 and 3: What to do?
1) The ControlEvent "NewDialog" on the "Next" button of Dialog2 has to be changed to point to "MyMSMSDialog" instead of Dialog3
2) The ControlEvent "NewDialog" on the "Back" button of Dialog3 has to be changed to point to "MyMSMSDialog" instead of Dialog2
3) The ControlEvent "NewDialog" on the "Next" button of MyMSMSDialog has to be set to point to "Dialog3"
4) The ControlEvent "NewDialog" on the "Back" button of MyMSMSDialog has to be set to point to "Dialog2"
5) Normally you have a "Cancel" Button on every dialog which allows cancelling the current setup by the use of a ControlEvent "SpawnWaitDialog" "CancelSetup". This Cancel Dialog normally exists once for all your dialogs, you would have to use it for the MyMSMDialog, too. But in the MergeModule it's missing, so ICE will fail.

All in all (and that's only a part of the problems/manual work) there is always a lot of work to be done manually when including a dialog. But using a MergeModule is a process of saying "I want this MSM for this feature" and the rest is done automatically (for example if the MergeModule is included via dependencies) - dialogs can't be added this way.

h.teichert-ott