Would doing the following work?
* Create a feature that contains all of the components that you might want
to reinstall
* Set REINSTALL=FeatureX during a "Change" install
* Add conditions to the components that cause them to be included (or not)
depending on the appropriate feature states.  This might be hard if you
already have component conditions.

This seems like it should work to me, but I have not tried it. 

Hope that helps,
Gavin :)

-----Original Message-----
From: Dale Quigg [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, November 25, 2008 6:14 PM
To: 'wix-users@lists.sourceforge.net'
Subject: [WiX-users] Reinstall a component during "Change" install

I am trying to reinstall some components when the user does a "Change".

The issue discussed in this thread
http://n2.nabble.com/Always-Reinstall-a-Component-td1483743.html
is similar to my situation, but I have one extra "twist" to my problem.

My problem is that I have two features and need to set REINSTALL based on
which of the two features are selected.

I have custom actions defined like this;
  <CustomAction Id="Both_SetREINSTALL" Property="REINSTALL"
Value="Feat1_ReinstallDuringChange,Feat2_ReinstallDuringChange" />
  <CustomAction Id="Feat1_SetREINSTALL" Property="REINSTALL"
Value="Feat1_ReinstallDuringChange" />
  <CustomAction Id="Feat2_SetREINSTALL" Property="REINSTALL"
Value="Feat2_ReinstallDuringChange" />

and sequenced like this;
  <Custom Action="Both_SetREINSTALL" After="CostInitialize">!FeatureOne=3
AND !FeatureTwo=3 AND NOT REINSTALL</Custom>
  <Custom Action="Feat1_SetREINSTALL"
After="Both_SetREINSTALL">!FeatureOne=3 AND NOT REINSTALL </Custom>
  <Custom Action="Feat2_SetREINSTALL"
After="Feat1_SetREINSTALL">!FeatureTwo=3 AND NOT REINSTALL </Custom>

However, when I run a "Change" install, I get;
  MSI (s) (30:94) [14:38:40:428]: Skipping action: Both_SetREINSTALL
(condition is false)
  MSI (s) (30:94) [14:38:40:428]: Skipping action: Feat1_SetREINSTALL
(condition is false)
  MSI (s) (30:94) [14:38:40:428]: Skipping action: Feat2_SetREINSTALL
(condition is false)

It appears that I'm in a Catch-22 here.  If I sequence my custom actions
after CostFinalize, then my conditions work (referencing the install state
of the features) correctly.  Unfortunately, at that point, changing
REINSTALL seems to have no effect since the costing is complete.

Does anyone have a suggestion on how I can resolve this?

Thanks,
Dale

Dale Quigg  |||  Senior Build / Configuration / Installation Engineer
MessageGate  |||  Enterprise Email Governance


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great
prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to