Search code examples
c#wixwindows-installerwixsharp

WixSharp inject multiple Custom CLR Dialogs


Using WixSharp, we can insert a custom System.Windows.Forms window as dialog .

project.InjectClrDialog("ShowCustomDialog", Dialogs.InstallDirDlg, Dialogs.VerifyReadyDlg);

[CustomAction]
public static ActionResult ShowCustomDialog(Session session)
{
    return WixCLRDialog.ShowAsMsiDialog(new MyCustomDialog(session));
}

The MyCustomDialog is derived from WixCLRDialog class.

If I have consecutive custom dialogs ( done in System.Windows.Forms ) to show. How do I insert them ?


Solution

  • The easiest way is to pack multiple dialogs into a single UI shell and allow the shell to navigate between dialogs. If you take this approach then you just inject a single shell-ClrDialog.

    BTW, the UI shellwith multiple CLR dialogs is a feature I am planing to release very soon.

    Oleg