Level 2

Dialogs from referenced DIM cannot be shown in MSI project UI sequence

I'm using IS 2012 Spring, and I have a 'main' basic MSI project. As part of our development effort we're using DIM projects to help coordinate multi-developer efforts. In our environment we have a main (Basic MSI) project which will reference other DIM projects. The DIM projects contain (among other things) Dialogs.

In the DIM project (just taking a generic example here) I have a new dialog which provides a 'next' and 'back' button. I've configured the 'Next' and 'Back' button behavior to emit a 'NewDialog' event where the argument is the next/previous panel so show (respectively) and the condition is 1 (i.e. always).

For example in the DIM I have MyDIMDialog with behavior:
ControlName "Back" Event "NewDialog" Argument "APreviousPanelFromMainProject" Condition "1"
ControlName "Next" Event "NewDialog" Argument "ReadyToInstall" Condition "1"

Based on the above MyDIMDialog is the last panel before the 'ready to install' built-in.

In the main (Basic MSI) project I've referenced the DIM module and associated it with a feature. I've configured the dialogs in the main project such that "APreviousPanelFromMainProject" has its NewDialog event with an Argument of the referenced DIM dialog (the generate Dialogs name).

Sidenote -- I'm trying to sequence the referenced dialog in of existing UI dialogs -- not as a "top level" UI sequence dialog like the built-in "Patch Welcome".

However when I build and run the MSI (we are using MSI not setup.exe) and I get to the APreviousPanelFromMainProject panel, clicking next does nothing -- the panel just flashes a little but does not proceed to my imported DIM dialog as sequenced.

I've also tried configuring the APreviousPanelFromMainProject such that its NewDialog event for 'next' has an argument of "MyDIMDialog" (i.e. I don't use the generated referenced dialog name which is of the form MyDIMDialog.XXXXXXXX_XXXX...). In this case when I run the installer I get an error "Error 2803. Dialog View did not find a record for the dialog MyDIMDialog".

So the question comes down to --> How do sequence a DIM referenced dialog in a basic MSI project?

My google-foo has not helped solve this issue so hoping someone here can help.

Labels (1)
0 Kudos
1 Reply

This works for me. here is what i followed:

1. Create a DIM Project 'SampleDIM'.
2. Add some files in files view.
3. Add a Interior dialog in Dialogs view-name it 'DIMDialog'.
4. Configure this dialogs Next and Back button as below:
ControlName "Back" Event "NewDialog" Argument "InstallWelcome" Condition "1"
ControlName "Next" Event "NewDialog" Argument "LicenseAgreement" Condition "1"
5. Save the project.
6. Create a BasicMSI project 'MainProject'.
7. Add a Feature and Dynamically (Reference) include above 'SampleDIM' project.
8. Go to CustomActions and Sequences do the following:
-Sequence DIMDialog under 'Installation | User Interface |InstallWelcome'.
-Configure Next Button of InstallWelcome as:
ControlName "Next" Event "NewDialog" Argument 'DIMDialog.' Condition "1"
-Configure Back Button of LicenseAgreement as:
ControlName "Back" Event "NewDialog" Argument 'DIMDialog.' Condition "1"
9. Build the BasicMSI project. Run the setup.
10.When i click on Next button in InstallWelcome dialog i see the 'DIMDialog' and so on.
0 Kudos