Fantastic! Thant works perfectly, thank you Rob. I had to hard-code the location of the uninstaller on the target machine, however, because it is normally 'discovered' during uninstall:
<Property Id="FFDSHOWUNINSTALLER"> <RegistrySearch Id="FFDShowRegKey" Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ffdshow_is1" Name="InstallLocation" Type="raw" /> </Property> <!-- Find the FFDShow Uninstaller executable on the target system. This is used to remove --> <Property Id="FFDSHOWUNINSTALLPATH" Secure="yes"> <DirectorySearch Id="FFDShowPath" Path="[FFDSHOWUNINSTALLER]"> <FileSearch Name="unins000.exe"/> </DirectorySearch> </Property> This works find during UNINSTALL, but during the install-rollback, this has already been evaluated and returned 'empty' because at install, the 'uninstaller' doesn't yet exist at the searched location. How, if its possible, can I force the installer to _re-evaluate_ this registry-search and directory-search, _before_ the roll-back custom action (or at least after 'InstallFiles'), so that the Property "FFDSHOWUNINSTALLPATH" is available for my CA with the correct location of the uninstaller? Adam Langley Senior Developer Tel: +64 9 486 9010 alang...@winscribe.com www.winscribe.com -----Original Message----- From: Rob Mensching [mailto:rob.mensch...@microsoft.com] Sent: Friday, 16 January 2009 9:52 a.m. To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] run custom action on rollback from failure to commit That looks much closer. Your last statement isn't _quite_ correct. The deferred actions (rollback actions are deferred) are "scheduled" in the first pass of the Windows Installer. That's when the condition is evaluated and that's why the rollback action always (almost?) has the same condition as the "forward" action. The actions are executed during the "execution" second pass and if they weren't scheduled they don't exist. <smile/> -----Original Message----- From: Adam Langley [mailto:alang...@winscribe.com] Sent: Thursday, January 15, 2009 12:13 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] run custom action on rollback from failure to commit Thanks Rob, I do handle uninstall, but not uninstall-rollback (that will be next on the list). So do I want something like this? (I assume that you are referring to the installation action as the "execution action", which in my case is "InstallFFDShow") <CustomAction Id="InstallFFDShow" BinaryKey="ffdshow.exe" ExeCommand="/VERYSILENT /loadinf="ffdshow.inf"" Execute="deferred" Impersonate="no" HideTarget="no" /> <CustomAction Id="RollbackInstallFFDShow" Property="FFDSHOWUNINSTALLPATH" Execute="rollback" ExeCommand="/VERYSILENT" Impersonate="no" HideTarget="no" /> <CustomAction Id="UninstallFFDShow" Property="FFDSHOWUNINSTALLPATH" Execute="deferred" ExeCommand="/VERYSILENT" Impersonate="no" HideTarget="no" /> <InstallExecuteSequence> <Custom Action="InstallFFDShow" After="InstallFiles"><![CDATA[ $ProductComponent > 2 ]]></Custom> <Custom Action="RollbackInstallFFDShow" Before=" InstallFFDShow "><![CDATA[ $ProductComponent > 2 ]]></Custom> <Custom Action="UninstallFFDShow" Before="InstallFinalize">FFDSHOWUNINSTALLPATH AND <![CDATA[ $ProductComponent = 2 ]]></Custom> </InstallExecuteSequence> My 'condition' for install-rollback is the same as for my install action, I assume that is correct, that when an install is rolled back the component still has the same install-status (>2)? Thanks Adam Langley Senior Developer Tel: +64 9 486 9010 alang...@winscribe.com www.winscribe.com -----Original Message----- From: Rob Mensching [mailto:rob.mensch...@microsoft.com] Sent: Friday, 16 January 2009 5:05 a.m. To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] run custom action on rollback from failure to commit You need to mark the rollback action @Execute="rollback" and make sure it is scheduled *before* the execution action. Also, make sure your condition on your rollback action is correct. Also, do you handle uninstall and uninstall rollback? -----Original Message----- From: Adam Langley [mailto:alang...@winscribe.com] Sent: Wednesday, January 14, 2009 20:59 To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] run custom action on rollback from failure to commit I have a vustom action which installs some 3rd party tools... <CustomAction Id="InstallFFDShow" BinaryKey="ffdshow.exe" ExeCommand="/VERYSILENT /loadinf="ffdshow.inf"" Execute="deferred" Impersonate="no" HideTarget="no" /> <CustomAction Id="UninstallFFDShow" Property="FFDSHOWUNINSTALLPATH" Execute="deferred" ExeCommand="/VERYSILENT" Impersonate="no" HideTarget="no" /> <InstallExecuteSequence> <Custom Action="InstallFFDShow" After="InstallFiles"><![CDATA[ $ProductComponent > 2 ]]></Custom> <Custom Action="UninstallFFDShow" Before="InstallFinalize">FFDSHOWUNINSTALLPATH AND <![CDATA[ $ProductComponent = 2 ]]></Custom> </InstallExecuteSequence> This works well, on install it runs the ffdshow.exe, and on uninstall it runs the ffdshow uninstaller (FFDSHOWUNINSTALLPATH is an exe located via the registry). My question is: How do I get the "UninstallFFDShow" to run during rollback? Currently, if there is an exception causing a failure to commit (such as is simulated by the FailInstallFromCommitCustomAction.msm), there is nothing to run the ffdshow uninstaller. What do I put in to do this? I tried adding another <Custom> tag, which ran After="RemoveFiles", but this did nothing... Can anyone give me an example? Thanks Adam ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users