0

Is it possible to skip the finish dialog after installation?

The reason why we want this is because we launch a new installation when the first installation finished, and that works. However, the installation starts after the user presses finish on the "finish" dialog, but it should instead run the new installation without having to press finish for it to start.

The code we use can be found at:

https://gist.github.com/raw/784215/7f7cc7dca73e10fd7d991c3926269719d6b204c6/mycustomui.wxs

In a few steps here is what I want to do:

  • User runs the .msi, a dialog with a combobox with languages is shown
  • User selects languages in the combobox and presses Next button
  • Installer unpacks/installs the "real" msi and then exits, and then uses a custom action to start "the real" install with correct parameters.
laurent
  • 88,262
  • 77
  • 290
  • 428
Qwark
  • 486
  • 11
  • 26

2 Answers2

1

The thing which fits best for the scenario you mentioned is called a bootstrapper. There are several choices, you can find this thread interesting. BTW, as far as I know, dotNetInstaller supports the scenario with languages you described out of the box.

Community
  • 1
  • 1
Yan Sklyarenko
  • 31,557
  • 24
  • 104
  • 139
  • The problem is that all bootstrappers give me exe files, and that do not work for those who roll out software to many users. that is why I need an msi. – Qwark Jan 18 '11 at 11:40
  • You need to rethink that requirement. You need the EXE to chain the MSI's together. This is a perfectly acceptable industry wide best practice. – Christopher Painter Jan 18 '11 at 14:24
0

You currently use <UIRef Id="WixUI_Common" /> See the chapter "Changing the UI sequence of a built-in dialog set" on Customizing Built-in WixUI Dialog Sets. That explains how to customize an existing UI. Here is an example from that page:

For example, to remove the LicenseAgreementDlg from the WixUI_InstallDir dialog set, you would do the following:

  1. Copy the full contents of the defined in WixUI_InstallDir.wxs in the WiX source code to your project.
  2. Remove the elements that are used to add Back and Next events for the LicenseAgreementDlg.
  3. Change the element that is used to add a Next event to the WelcomeDlg to go to the InstallDirDlg instead of the LicenseAgreementDlg. For example:

    <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">1</Publish>
    
  4. Change the element that is used to add a Back event to the InstallDirDlg to go to the WelcomeDlg instead of the LicenseAgreementDlg. For example:

    <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
    

You can also create your own UI definition. (If you don't include any UI or UIRef, there will be no UI at all).

wimh
  • 15,072
  • 6
  • 47
  • 98