WIX bootstrapper fails on MSI package with 'optional' CAB files

0

Using WIX 3.10:

I authored a MSI package using a few external CAB files. Sometimes we deploy over network and we omit one or more CAB files (which contain files not needed for program execution). On installation we deselect corresponding features. There is no problem with missing CABs in that case.

Now I authored a bootstrapper with managed BA. In chain of packages I set 'Cache=no':

<MsiPackage Id="MyInstaller"
 Compressed="no" Visible="no" ForcePerMachine="yes"
 EnableFeatureSelection="yes"
 Cache="no"
 SourceFile="$(var.MyPackageFileName)">

The problem is: on runtime the bootstrapper verifies presence of all packages and theirs CAB files (if any). It does so before the execution of all packages in the chain.

From log (shortened):

Acquiring package: MyInstaller, payload: MyInstaller, copy from: D:\X\MX-8-2-0-77-x86-Release.msi
Setting string variable 'WixBundleLastUsedSource' to value 'D:\X\'
Verified acquired payload: MyInstaller at path: C:\ProgramData\Package Cache\.unverified\MyInstaller, moving to: C:\ProgramData\Package Cache\{970B002C-448C-46E8-856C-5F9C5B234AB4}v8.2.0.77\MX-8-2-0-77-x86-Release.msi.
Acquiring package: MyInstaller, payload: cab502ABC9C22436673DD367A3B0E989121, copy from: D:\X\MX-8-2-0-77-x86-Release-Data.CAB
Verified acquired payload: cab502ABC9C22436673DD367A3B0E989121 at path: C:\ProgramData\Package Cache\.unverified\cab502ABC9C22436673DD367A3B0E989121, moving to: C:\ProgramData\Package Cache\{970B002C-448C-46E8-856C-5F9C5B234AB4}v8.2.0.77\MX-8-2-0-77-x86-Release-Data.CAB.
Prompt for source of package: MyInstaller, payload: cabBC894B366CE86BC776B6C0F16A45AEC9, path: D:\X\MX-8-2-0-77-x86-Release-HelpAndDoc.CAB
Failed to resolve source for file: D:\X\MX-8-2-0-77-x86-Release-HelpAndDoc.CAB, error: 0x80070002.
Error 0x80070002: Failed while prompting for source (original path 'D:\X\MX-8-2-0-77-x86-Release-HelpAndDoc.CAB').
Failed to acquire payload: cabBC894B366CE86BC776B6C0F16A45AEC9 to working path: C:\Users\CHRIST~1.THI\AppData\Local\Temp\{3CF902F0-06EB-46E8-BECF-900FA010D2EC}\cabBC894B366CE86BC776B6C0F16A45AEC9, error: 0x80070002.
Error 0x80070002: Failed while caching, aborting execution.

I don't want a prompt for missing files. I don't want to download missing files. And I don't want verification of CABs. Hence I disabled package caching. But WIX boostrapper host seems to ignore that.

All CAB files are also present in 'BootstrapperApplicationData.xml' which is created at compile time. But I did not mention them in bootstrapper sources. WIX burn obviously analyzes the packages.

How to make the bootstrapper host ignore missing CAB files for one MSI package?

wix
windows-installer
wix3.10
asked on Stack Overflow Jul 10, 2018 by Christoph Thien

1 Answer

0

Burn doesn't support that scenario. It assumes the .cabs in your package are needed and always verifies all packages and payloads.

answered on Stack Overflow Jul 10, 2018 by Bob Arnson

User contributions licensed under CC BY-SA 3.0