Could you use the built-in variable WixBundleInstalled instead ? I'm not sure if that's version specific or not. It might be worth a look.
-----Original Message----- From: Frauenhoffer, Sabine [mailto:sabine.frauenhof...@haufe-lexware.com] Sent: 27 September 2012 14:13 To: wix-users@lists.sourceforge.net Subject: [WiX-users] Custom Bootstrapper Application: Problem when trying todetect if Bundle is already installed Hi there, I have a problem when trying to detect whether my Bundle is already installed. My usecase is as follows: I am creating a bundle with a custom UI. On startup I need to check whether my bundle is already installed in the exactly same version to determine if I have to show the maintenance page (if the versions match), to block installation(if a newer version is already installed) or show the install page (else). So I make a call to _bootstrapperApplication.Engine.Detect(); My first idea now was to handle the event _bootstrapperApplication.DetectRelatedBundle and somehow determine whether the productcodes are different. This is not possible as I can't get the product code of the bundle that is going to be installed. Then I thought it might be an idea, to check for some package which is unique for my product. So I added the line _bootstrapperApplication.DetectPackageComplete = DetectedPackage; (see below) but it doesn't work as I expected: private void DetectedPackage(object sender, DetectPackageCompleteEventArgs e) { PackageState.Obsolete if (e.PackageId.Equals("mypackage", StringComparison.Ordinal)) { _state = (e.State == PackageState.Present) ? InstallationState.DetectedPresent : InstallationState.DetectedAbsent; } } - If for example version 2.8 is installed and the Package in my Bundle now has version 2.7 it returns PackageState.Absent (or Obsolete? I can't reproduce it at the moment) which is just fine - If version 2.8 is installed and the Package in my Bundle now has version 2.8, too, it syas e.State = PackageState.Present which is correct, too. - But if version 2.8 is installed and the Package in my Bundle now has version 2.9, I get e.State = PackageState.Present and would show the maintenance page although I would need to show install page and install the newer version. Is this intended or is it a bug? Am I getting something wrong? What I am doing as a workaround is, on DetectRelatedBundle event I make some very ugly version comparison. Is there any other option? Any help appreciated, thanks in advance! Regards, Sabine ----------------------------------------------------------------------------- - Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://ad.doubleclick.net/clk;258768047;13503038;j? http://info.appdynamics.com/FreeJavaPerformanceDownload.html _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users SDL PLC confidential, all rights reserved. If you are not the intended recipient of this mail SDL requests and requires that you delete it without acting upon or copying any of its contents, and we further request that you advise us. SDL PLC is a public limited company registered in England and Wales. Registered number: 02675207. Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, UK. ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://ad.doubleclick.net/clk;258768047;13503038;j? http://info.appdynamics.com/FreeJavaPerformanceDownload.html _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users