WIX msi with large number of files takes before we

2019-08-05 05:42发布

问题:

We have an MSI developed using Wix 3.10, it contains around 33,200 components associated with one particular feature.

The issue is that when the MSI is launched, the welcome dialog takes a long time to be enabled, roughly around 3-4 minutes on the development environment. The same issue occurs when the particular feature is deselected and selected back for usage.

I suspect the delay seems to be due to standard Custom action such as CostInitialise, FileCost, and CostFinalise.

This behavior hampers the UI experience. Is there a workaround to fix this issue.

回答1:

Paraffin: The tool Paraffin in an earlier edition can be used to generate components with multiple files. Not recommended, but possible: Generate WIX authoring files to contain multiple files under a single component.


MSIFASTINSTALL: Maybe try to set the property MSIFASTINSTALL to 3 in the property table. This is to limit costing and avoid creating a system restore point. This can speed things up quite a bit. Hopefully.

Max Package Size: There are a number of size limtations for an MSI file. I am not sure if you have enabled the schema changes required for large MSI packages? See this topic on installsite.org: What are the limits for a large MSI package?

Microsoft Doc: Authoring a Large Package (the schema changes you might need).


Consolidation: Going to incorporate some of the suggestions from the comments here:

  • Log File: Get a proper log file created just to have more debugging material: msiexec.exe /i C:\Path\Your.msi MSIFASTINSTALL=3 /L*v C:\Your.log - more on logging from installsite.org
  • Admin Install: Try running the installation after performing an admin install. This will avoid CAB-extraction which can be lengthy: msiexec.exe /a MySetup.msi TARGETDIR=C:\MySetup (also see security software interference below).
  • Dialog Set: Just to rule it out, if you use WiX try to compile your setup with a different setup GUI.
  • Security Software: Definitely try to disable your security software during a test install to see if the anti-virus or anti-malware software kills the CAB extract or blocks a custom action or slows things down overall more than usual.
  • Custom Actions: Review any custom actions and perhaps disable them for a test run. Just to narrow down. Not the most likely candidate, but I have seen it happen - typically in combination with security software interference.
  • Regroup & Decompose: And the bite-the-bullet option that we often end up with: split the setup in different parts to get a faster installation per-setup. You can use WiX's Burn bootstrapper / sequencer / downloader / chainer to install several MSI files in sequence.
  • Run Locally: Just for the record, if you run off a network share, copy the setup local and try again.

The WiX Burn option also allows you to write your own, external setup GUI. I am not sure how that would help with the installation speed. You would not show your setup's own, slow dialogs, but costing would still run. In would just happen whilst the setup is being run in silent mode (most likely).


Some Links:

  • How can I speed up MSI package install and uninstall?