0

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.

1 Answer 1

0

I solved the problem by hooking to the OnPlanRelatedBundle event and removing the registries of older versions of the application.

However, this requires running the bootstrapper with administrative privileges.

    private void OnPlanRelatedBundle(object sender, PlanRelatedBundleEventArgs e)
    {
        try
        {
            string registryKey = @"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall";
            RegistryKey key32 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
            RegistryKey key = key32.OpenSubKey(registryKey, true);
            if (key != null)
            {
                key.DeleteSubKeyTree(e.BundleId, false);
                key.Close();
            }
        }
        catch (Exception ex)
        {
        }
    }
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.