[wix-users] Build time reduction possibilities with binary wixlibs

Konstantin Konstantinov ktkonstantinov at gmail.com
Fri Jul 3 01:59:55 PDT 2020


Hello everyone,
    At work I am exploring build time reduction possibilities with Wix. In
the current setup we have 36 mins of build time for 7 product installers
(MSI) which is considered too much for the CI pipeline. Looking closer at
these timings I found out that Wix spends most of the time
compressing third-party libraries that rarely change. They account for
around 80% of each installer payload. So naturally using the linker cache
helps a lot -> x9 build time reduction on average. However, since we build
our products in parallel, it means that we have to use 7 different cabinet
caches for the same libraries. Also the general direction in the build
process is to clear any intermediate state between rebuilds and use caches
as rarely as possible to avoid stale data creeping in.
   I was wondering if it is possible to use binary wixlibs directly without
a linker cache and rebuild them separately only when updating the 3rd party
libraries? This way we can keep them even under version control.
   I tried it and, unfortunately, I'm stuck with several problems with this
approach that practically negate the performance benefits. Each library is
placed in a separate binary wixlib defining 1 separate cabinet. The
problems are:
  1. Cannot control the level of compression for the library tool
(lit.exe), seems to default to mszip at all times regardless of the <media>
setting.
  2. The MSI linker (light.exe) seems to decompress and recompress the
cabinet payload from the binary wixlibs when building the final MSI if the
linker cache is not used.
  3. .pdb generation for the MSI takes quite some time with binary wixlibs
- this is probably a misconfiguration on my side or a bug.
Environment: Win10, Wix3.11.2, MSVS2019 (16.5.5) + WixExtension

I have posted a question in stackoverflow with a description of a
simplified setup, time measurements and different setup options that I
tried. Sofar nobody has commented on it.
https://stackoverflow.com/questions/62682382/reducing-build-time-with-binary-wixlibs


Any help with any of these 3 points would be greatly appreciated!
Thank you for your time.

Konstantin Konstantinov


More information about the wix-users mailing list