We have a chained .msi installer that is run on every install and upgrade of our main application.

The main application is an exe installer.

Issue
When we manually update the main application using the exe installer, the registry keys added by the chained installer are first removed and then re-added (expected).

When we use the AI updater and an update is detected,the main application is installed, however the registry keys added by the chained installer are first removed but not re-added (bug?).

The registry keys are important as they instruct our main application where the msi package was installed.

We've already set the conditions of the registry keys to "(REMOVE="ALL" AND (NOT UPGRADINGPRODUCTCODE))" on the "operations" tab, and both checkboxes are ticked on the "Registry Key" tab (Create if absent / Delete if present).

I'm not sure why you encounter this problem. In order to investigate it, please check the "Enable Logging" option for the chained prerequisite and sent me that log file along with the main package's log and project file to support at advancedinstaller dot com, so I can investigate them.

We think we've resolved this. The registry keys were attached to a component of which the underlying file name is generated at build time (Angular project, output hashing). Our assumption is that because the filename changes each build, the component is removed and not re-installed.

e.g.

Before:
REG_KEY -> Component_1 -> file.{random_file_name}.js

After:
REG_KEY -> Compoent_1 -> file.js

We've changed the registry keys to attach to a component who's underlying filename does not change. I'll update this post if it passes from our QA Team