0
votes

I have a Bundle with several ExePackage and MsiPackage Elements. It is a perMachine package (all the Msi and Exe Packages are perMachine or ForcePerMachine) I wrote a custom BA with C#;

installing it works fine,modifying, uninstalling, and the Bundle registered correctly as per log:

[06F8:0F3C][2015-10-07T11:12:32]i372: Session end, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{eb3fd6f6-0cb2-4999-84e9-7d71f5ab1551}, resume: ARP, restart: None, disable resume: No
[06F8:0F3C][2015-10-07T11:12:32]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{eb3fd6f6-0cb2-4999-84e9-7d71f5ab1551}, resume: ARP, restart initiated: No, disable resume: No

But if I start the Setup.exe again, from my understanding, when detect() is called, OnDetectRelatedBundle should fire - which it doesn't. (afaik it should log, furthermore I added my own Engine.Log entry which does not fire)

upon investigation of the registry (and sniffing around in the source code) I found out that the key is under \HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft...

Because I opened the same bundle, the same UpgradeCode should be used.

Questions:

Is it ok that the registration is on the Wownode, and does the detection of the related bundles also look upon the Wownode? (I don't have 3.10 Source Code because I couldn't find the branch, but from the 3.8 Code the following const regarding writing/reading the registry seemed intriguing:

const LPCWSTR BURN_REGISTRATION_REGISTRY_UNINSTALL_KEY = L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";

)

What else could I have missed regarding the related bundle detection?

1

1 Answers

1
votes

The Burn engine will never call OnDetectRelatedBundle for the currently executing bundle, because it's not a related bundle - it's the bundle. The fInstalled parameter of OnDetectBegin will tell you if the bundle is installed or not.

The source code is at https://github.com/wixtoolset/wix3. The master branch always has the code for the latest release.