I spent a few days on solving the problem with many versions of the boostrapper in Add/Remove Programs.
I have tried in many ways with different combinations of the DisableRemove, DisableModify, UpgradeCode, ParentName and Version for Bundle properties. I am tring attach to the event PlanRelatedBundle and DetectRelatedBundle but I am not able to set anything there.
Found this from 2012 but unfortunately there is no such definitive solution to this problem for bootstrapper. http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Bootstrapper-Upgrade-Detection-td7580471i20.html
In logs I can see it find related bundle
First version 1.0.108.0:
[4364:38F8][2021-05-05T07:58:53]i370: Session begin, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{a0118d1b-5688-4e44-a1a9-61c7b7b4d9f0}, options: 0x7, disable resume: No [4364:38F8][2021-05-05T07:58:54]i000: Caching bundle from: 'C:\Users\M4360~1\AppData\Local\Temp{82501D9E-759F-4960-9F6B-D34CB27DBC5B}.be\ETest.exe' to: 'C:\ProgramData\Package Cache{a0118d1b-5688-4e44-a1a9-61c7b7b4d9f0}\ETest.exe' [4364:38F8][2021-05-05T07:58:54]i320: Registering bundle dependency provider: {a0118d1b-5688-4e44-a1a9-61c7b7b4d9f0}, version: 1.0.108.0 [4364:38F8][2021-05-05T07:58:54]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{a0118d1b-5688-4e44-a1a9-61c7b7b4d9f0}, resume: Active, restart initiated: No, disable resume: No
Second version 1.0.109.0:
[0FC0:2F94][2021-05-05T08:16:19]i000: *********** EVENT: PlanRelatedBundle, arg name: PlanRelatedBundleEventArgs - BundleId, value: {a0118d1b-5688-4e44-a1a9-61c7b7b4d9f0}. State, value: Absent. Result, value: None. , sender:: BootstrapperStartup
[0FC0:2F94][2021-05-05T08:16:19]i207: Planned related bundle: {a0118d1b-5688-4e44-a1a9-61c7b7b4d9f0}, type: Upgrade, default requested: Absent, ba requested: Absent, execute: Uninstall, rollback: Install, dependency: None
[2278:35D8][2021-05-05T08:16:22]i370: Session begin, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{e0e0d315-c8fc-4f19-acb0-01791a533e15}, options: 0x7, disable resume: No [2278:35D8][2021-05-05T08:16:23]i000: Caching bundle from: 'C:\Users\M4360~1\AppData\Local\Temp{B525729B-76AE-4428-9F13-9DA529F2E455}.be\ETest.exe' to: 'C:\ProgramData\Package Cache{e0e0d315-c8fc-4f19-acb0-01791a533e15}\ETest.exe' [2278:35D8][2021-05-05T08:16:23]i320: Registering bundle dependency provider: {e0e0d315-c8fc-4f19-acb0-01791a533e15}, version: 1.0.109.0 [2278:35D8][2021-05-05T08:16:23]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{e0e0d315-c8fc-4f19-acb0-01791a533e15}, resume: Active, restart initiated: No, disable resume: No
Third version 1.0.110.0:
[1C30:06C8][2021-05-05T08:26:14]i000: *********** EVENT: PlanRelatedBundle, arg name: PlanRelatedBundleEventArgs - BundleId, value: {a0118d1b-5688-4e44-a1a9-61c7b7b4d9f0}. State, value: Absent. Result, value: None. , sender:: BootstrapperStartup
[1C30:06C8][2021-05-05T08:26:14]i000: *********** EVENT: PlanRelatedBundle, arg name: PlanRelatedBundleEventArgs - BundleId, value: {e0e0d315-c8fc-4f19-acb0-01791a533e15}. State, value: Absent. Result, value: None. , sender:: BootstrapperStartup
[1C30:06C8][2021-05-05T08:26:14]i207: Planned related bundle: {a0118d1b-5688-4e44-a1a9-61c7b7b4d9f0}, type: Upgrade, default requested: Absent, ba requested: Absent, execute: Uninstall, rollback: Install, dependency: None [1C30:06C8][2021-05-05T08:26:14]i207: Planned related bundle: {e0e0d315-c8fc-4f19-acb0-01791a533e15}, type: Upgrade, default requested: Absent, ba requested: Absent, execute: Uninstall, rollback: Install, dependency: None
GUID is correct, but I can't see anything in the logs more about previous versions and I can't see them being uninstalled.
I tried to add ParentName to the Bundle, but it causes no new version to show up in Add/Remove Programs and dont remove old.
Finally my installer installs 5 things, 4 of which are programs that need to be installed for my .msi and I don't know if these other versions are eventually uninstalled and only the registry remains? Why are they in Add / Remove Programs? Because when installing the next version of the boostrapper, it does not take up as much disk space as its entire size from 1.3gb takes about 200 / 300mb and my .msi has 170mb + logs.
Maybe deleting the registry in PlanRelatedBundle is enough?
Edit
I tried remove registery in event OnPlanRelatedBundle and I conclude that the bootstrapper does not have permission to delete registries during upgrade throws an error with RegistryKey key = key32.OpenSubKey (registryKey, true) ;. If I attache to the process when uninstall bootstrapper , the permissions are higher and successfully remove the registers of old versions of the boostrapper. But the installer increases the "Launched elevated engine process." Exe, running as administrator also does not make the old version uninstall.