Looking for some clarification on conditions to use for sequencing activities 
to cover install | modify add feature | rollback | modify remove feature | 
uninstall cases.

I usually end up having one type of custom actions that are feature or 
component specific and intended to provision things during install | modify add 
feature processing.

I also then end up having another type of custom actions that are feature or 
component specific and intended to un-provision things during rollback | modify 
remove feature | uninstall processing.

So for feature or component related custom actions that have feature or 
component related provisioning / un-provisioning behaviors is it true that 
you'd always want the sequencing conditions to be based on feature or component 
state and action checking, and not the less granular "Install" and "Not 
Installed" condition checks, so that you catch the install | modify add feature 
cases when you want the provisioning to happen and the rollback | modify remove 
feature | uninstall cases when you want the unprovisioning to happen.

For example would it be expected that the following custom action sequence 
conditioning successfully handle install | modify add feature | rollback | 
modify remove feature | uninstall cases?

<Feature Id="MainApplication" Title="Main Application" Level="1">
    <ComponentRef Id="MmcSnapin.dll" />
    <ComponentRef Id="Configuration.dll" />
</Feature>

<!-- The Install and Modify Feature Add actions -->
<CustomAction Id="SetInstallUtilCmdLine64" Property="InstallUtilCmdLine64"
    Value="&quot;[INSTALLUTIL64]&quot; 
&quot;[APPLICATIONROOTDIRECTORY]\Company.Deliverable.UI.MmcSnapin.dll&quot;"  />
<CustomAction Id="InstallUtilCmdLine64" BinaryKey="WixCA" 
DllEntry="CAQuietExec" Execute="deferred" Return="check"/>

<!-- The Rollback, Modify Feature Remove and Uninstall actions -->
<CustomAction Id="SetUnInstallUtilCmdLine64" Property="UnInstallUtilCmdLine64"
    Value="&quot;[INSTALLUTIL64]&quot; /u 
&quot;[APPLICATIONROOTDIRECTORY]\Company.Deliverable..UI.MmcSnapin.dll&quot;"  
/>
<CustomAction Id="UnInstallUtilCmdLine64" BinaryKey="WixCA" 
DllEntry="CAQuietExec" Execute="deferred" Return="check"/>

<InstallExecuteSequence>
  <Custom Action="SetInstallUtilCmdLine64" After="InstallFiles" />
  <Custom Action="InstallUtilCmdLine64" After="SetInstallUtilCmdLine64" 
>InstallUtilCmdLine64 And !MainApplication=2 and &ampMainApplication=3</Custom>

  <Custom Action="SetUnInstallUtilCmdLine64" Before="UnInstallUtilCmdLine64" />
  <Custom Action="UnInstallUtilCmdLine64" Before="RemoveFiles" 
>UnInstallUtilCmdLine64 And !MainApplication=3 and 
&ampMainApplication=2</Custom>
</InstallExecuteSequence>

Also is it never possible for the "Installed" property to be present/set during 
rollback processing since presumably the product didn't successfully install 
and thus the rollback.  Or is it possible for the for the "Installed" property 
to be present/set during rollback processing the case being when the product 
was already installed and the user used controlpanel programs <product> modify 
addfeature and the feature addition activities had a failure thus triggering a 
rollback of just that feature addition?

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to