wixinstallationself-extracting

How does Burn in WiX 3.6 bundle MSI files into an .exe?


I'm interested in knowing how WiX is bundling the EXE files created with Burn. I know that creating a self-extracting EXE file is pretty straightforward, having done it a million times in WinRAR. What directory is the EXE file being unpacked to, and how is the installation writing that location into Add/Remove Programs?

Also, how is the UX file being kept around for the uninstall? And even more interesting, what goes on during an upgrade?


Solution

  • Burn doesn't create a typical "self-extracting .exe" that unpacks the contents then launches. Instead, it extracts the bits it needs (the UX or bootstrapper application) to a temporary directory and then caches the packages that are needed when they're needed. That way, no time is wasted extracting packages that aren't used.

    The cache directory is named "Package Cache" and stored in an appdata folder, which one depending on whether it's a per-user or per-machine package.

    There's nothing special about upgrades, except that when one bundle upgrades another, the previous bundle's cache is removed.