Sorry, I misunderstood your original email. If you want to uninstall previous component and install new one during upgrade install you might want to use transitive components (http://msdn2.microsoft.com/en-us/library/aa372462(VS.85).aspx). In Wix, use Component/@Transitive = "yes". Conditions on transitive components are always evaluated, whereas conditions on regular components are evaluated during fresh install only.
-----Original Message----- From: Chris Ridd [mailto:[EMAIL PROTECTED] Sent: Thursday, February 28, 2008 2:28 AM To: Alexander Shevchuk Cc: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Searching for multiple registry keys On 27 Feb 2008, at 20:12, Alexander Shevchuk wrote: > Sorry, I don't have neither enough time to come up with the sample > nor ready sample. > One of the possible solutions for your problem is Qualified > components (http://msdn2.microsoft.com/en-us/library/aa370947.aspx) > and PublishComponent table > (http://msdn2.microsoft.com/en-us/library/aa370921(VS.85).aspx > ). > In WiX, look for Category > (http://wix.sourceforge.net/manual-wix2/wix_xsd_category.htm > ) and Component (http://wix.sourceforge.net/manual-wix2/wix_xsd_component.htm > ) elements. > With qualified components you don't have to use any custom actions. > If I will have time this weekend, I'll try to make a sample. This sounds like a great solution, but I couldn't get repair to work the way I wanted. I was using the following structure: <Component Id="App_JRE15" Guid="..."> <Condition>JRE15HOME and NOT JDK15HOME</Condition> <Category Id="guid-1" Qualifier="JRE15"/> <Shortcut Target="[JRE15HOME]\bin\javaw.exe" .../> </Component> <Component Id="App_JDK15" Guid="..."> <Condition>JDK15HOME</Condition> <Category Id="guid-1" Qualifier="JDK15"/> <Shortcut Target="[JDK15HOME]\bin\javaw.exe" .../> </Component> [similar components for other combinations here] If I have JDK 1.5 and JRE 1.5 installed, installing my package results in Component App_JDK15 being installed as per the conditions. If I then remove JDK 1.5 and "repair" (REINSTALL=ALL, REINSTALLMODE=pecms) my package, I want Component App_JDK15 to be removed (its condition will not be true any more) and App_JRE15 to be created (its condition will now be true). Instead, App_JDK15 just gets updated with a broken Target :-( It isn't clear how [EMAIL PROTECTED] gets used in a reinstall, but setting them all to the same string (eg "App") didn't change what happened. Cheers, Chris ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. 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