10

I am working on a Windows installer using the WIX toolkit, and it takes FOR EVER (15-45 seconds) for the UAC dialog to pop up during an install. is there any way to speed this up?

Brian
  • 6,910
  • 8
  • 44
  • 82

3 Answers3

8

Thanks to joegrage for pointing me in the right direction on this one. The trick to this seems to be the MSIFASTINSTALL property.

The MSIFASTINSTALL property can be used to reduce the time required to install a large Windows Installer package. The property can be set on the command line or in the Property table to configure operations that the user or developer determines are non-essential for the installation.

The value of the MSIFASTINSTALL property can be a combination of the following values.

value  Meaning 
-----  -----------------------------------------------------------
0      Default value
1      No system restore point is saved for this installation.
2      Perform only File Costing and skip checking other costs.
4      Reduce the frequency of progress messages.

In WIX, you can use a combination of these values like so:

<Property Id="MSIFASTINSTALL" Value="3" />

A more detailed write up about this property can be found on this blog post.

Brian
  • 6,910
  • 8
  • 44
  • 82
6

Everytime you install software using Windows Installer, a restore point is created prior to do the actual installation. Ref: http://msdn.microsoft.com/en-us/library/aa372060.aspx

You can turn this off in the registry: http://msdn.microsoft.com/en-us/library/aa369758.aspx

joerage
  • 4,863
  • 4
  • 38
  • 48
  • 2
    My guess is also that it's the creation of a restore point that is your problem. Try reading this: http://stackoverflow.com/a/6866634/600559 – Morten Frederiksen May 07 '12 at 07:05
5

This happens because Windows is checking if the package has a digital signature.

Unfortunately the digital signature verification algorithm is not very good. Also, its performance depends on the package size. So a bigger package will have a longer delay.

To avoid the delay you can add a simple EXE bootstrapper to your MSI. It’s purpose is to request elevation through an application manifest and launch the MSI next to it. If you don’t include your MSI in it, the bootstrapper will have a small size. So the digital signature check will be very fast.

Cosmin
  • 21,216
  • 5
  • 45
  • 60