I've got a component that's installed by two products, via a merge module. There's also some custom actions, conditioned something like this: Install_Ensure, Condition: $Comp1 = 3 InstallRollback_Remove, Condition: $Comp1=3 AND NOT ?Comp1=3 Uninstall_Remove, Condition: $Comp1 = 2 AND NOT UPGRADINGCODE (UninstallRollback_Ensure)
The Product2 uninstall works fine: the log shows that it gets "Installed: Local; Request: Absent; Action: Null", so the shared component is -- correctly -- not removed until Product1 is uninstalled. However, there's a problem with the Product2 install rollback condition. During install the component state shows "Installed: Absent; Request: Local; Action: Local". I was expecting Installed to be Local, not Absent! I thought my "AND NOT ?Comp1=3" condition would mean the rollback remove would only run when the component was not already installed, i.e. not run during Prodcut2 install. But the rollback runs. After searching, I found a confirmation in the docs at the bottom of 'Conditional Statement Syntax' that this behaviour is expected by Windows Installer, "Note that you should not depend upon the condition $Component1=3 to check whether Component1 is locally installed on the computer..." Question: So what is the correct way for the Product2 install to know that the shared component is already installed locally by Prodcut1? Thanks for any suggestions Daryn Mitchell, Software Developer, Faronics Corporation Note: I haven't tried SharedDllRefCount; from my reading of the docs it didn't seem like it would solve this, except if I used it to support a hack like manually checking the refcount in the registry at install time? ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users