[wix-devs] 4822 - Delay ARP registration in Bundles until a non-permanent package is installed

Rob Mensching rob at firegiant.com
Wed Jul 15 10:59:24 PDT 2020

> The reason I want "until first non-permanent package" is that it seems to be the best way to describe when a "real" part of the bundle has been installed. If the bundle is uninstalling and it fails before all non-permanent packages are uninstalled, then I don't think the "InProgressRegistrationName" should ever be written to ARP during that Apply execution.

Yeah. Seems reasonable. We're really getting to a point of having a "pre-req" section of the chain in Burn. I'm not sure it's worth explicitly specifying in the .wxs but maybe the BurnBackend should automatically tag early permanent packages as "pre-reqs" to help the engine? I don't know just ideas.

> Points 1 and 2 in the WIP should ensure that if the BA does Detect/Plan/Apply then the engine does the right thing. So the only problem is if the BA doesn't successfully start Apply. That means that any functionality we add would have to happen when they call the engine's Quit method, and it probably would need a new command line parameter since we shouldn't rely on the BA calling Detect. That should be possible to implement but might be tricky since the BA has effectively shutdown and wouldn't be expecting any more messages.

Yes. This is exactly what I was pointing out and I 100% agree with everything you said. It isn't that hard to get into this situation:

1. Launch bundle that requires NETFX installed and restarted
2. Install NETFX, bundle will be registered, restart
3. Resume installation, bundle shows its install UI for first time
4. User cancels without proceeding through the install UI
5. The bundle is still registered but the user thinks they "cancelled the install" before even clicking the Install button (they only accepted the "NETFX install", not the "product's install")

The work around *is* easy, uninstall the "leftover" product. The problem is the perception of the user that thinks the product never should have been there (installing NETFX isn't installing the product). I agree the only solution I've seen is for Burn to clean up the cached bundle and registration during Quit() without talking to the BA. 

My primary concern remains that the "InProgressRegistrationName" solution does not address this most problematic scenario.

More information about the wix-devs mailing list