Contrary to norm, I have implemented a concurrent installation scenario where 
one second install, user will go through my custom install dialogs. One last 
leg, I present them with "Install" button, which simulates what 
"VerifyReadyDlg" dialog's custom install option would do.

                <Control Id="Install" Type="PushButton" ElevationShield="yes" 
X="212" Y="243" Width="80" Height="17" Default="yes" Hidden="yes" 
Disabled="yes" Text="!(loc.VerifyReadyDlgInstall)">
                    <Condition Action="show">NOT Installed AND 
ALLUSERS</Condition>
                    <Condition Action="enable">NOT Installed</Condition>
                    <Condition Action="default">NOT Installed</Condition>
                    <Publish Event="EndDialog" 
Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
(PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
                    <Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 
1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="EnableRollback" 
Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND 
PROMPTROLLBACKCOST="D"</Publish>
                    <Publish Event="SpawnDialog" 
Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR 
(OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
                </Control>


This works fine, what works backwards for me now is that my CUSTOM ACTIONS for 
INSTALL don't work on 2nd Install, because they are coded to run when "NOT 
Installed".
Also my Custom Actions for UNINSTALL only are now running on 2nd install 
onwards because they are coded to run when product is "INSTALLED". Here is how 
I have put logic to run custom actions.

Any pointer to tweak this final thing would be greatly appreciated. What would 
do the trick for me would be to a pointer that would tell me, if there is 
alternate terminology for following two:

    <InstallExecuteSequence>
      <Custom Action ="SetCustomActionDataValue" Before="InstallFinalize">NOT 
Installed </Custom> --This should run every time except on UNINSTALL through /X 
cmdline or Add Remove Program's 'Remove' option.
      <Custom Action="CustomAction1id" After="SetCustomActionDataValue">NOT 
Installed </Custom>
    </InstallExecuteSequence>


    <InstallExecuteSequence>
      <Custom Action ="UninstallOnly" Before="InstallFinalize" />
      <Custom Action="UninstallOnlyCA" After="UninstallOnly"  > Installed 
</Custom> -- Here is where I want the Uninstall to work only when someone is 
explicitly uninstalling using /X or Add Remove programs "Remove" option.
    </InstallExecuteSequence>




Thanks,
Shital Mehta
IT Developer


------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to