I believe I have answered my own question. By adding a binary element (child of Product element) -
<Binary Id="CabInstaller" SourceFile="C:\Intava\Source\tools\CabInstaller\Debug\CabInstaller.exe" /> I was able to execute the CabInstaller with it's uninstall option when (and only when) doing an uninstall. It required me to change my custom action to use a binary key rather than a file key. <CustomAction Id="RemoveIntavaDLCab" BinaryKey="CabInstaller" Execute="immediate" ExeCommand="-u [TempFolder]IntavaDL.cab" Return="check" /> Many thanks for your help. > -----Original Message----- > From: Dane Anderson > Sent: Monday, October 16, 2006 12:09 PM > To: 'wix-users@lists.sourceforge.net' > Subject: RE: [WiX-users] Uninstall Custom action > > Sorry to be bending your 'ears' with this. > > OK. I think I know what is happening now. It *IS* executing my custom > action. The problem is, the binary executable that is supposed to get run > (cabinstaller.exe) doesn't exist on the machine in the %temp% location, > when the custom action is run. > > Cabinstaller is added to the msi file with > > <Directory Id="TARGETDIR" Name="SourceDir"> > <Directory Id="TempFolder" Name="TempDir"> > <Component Id="INTAVADLLS" DiskId="1" Guid="$(env.INTAVADLSGUID)"> > <File Id="CabInstaller.exe" Name="INSTALLR.EXE" > LongName="CabInstaller.exe" src="<bld loc>\CabInstaller.exe" > Vital="yes" /> > > During an install, it gets placed, by the installer, in the %temp% > directory, where the install custom actions can execute it. After > it gets executed for the install, it gets deleted by another custom > action (not allowed to leave the executable or the cabs behind), > after it has been used. > > I am guessing that the installer doesn't bother copying the files > to the %temp% directory during an uninstall (I suspect it just > doesn't complain about them not being there when it goes to delete > them). Thus the executable is NOT on the machine where my custom > action bat file is expecting it to be. This would also explain WHY > I was getting an unexpected return value error when I tried to run > it directly from the installer. I thought it was throwing an exception > which the installer was catching and which (for some reason I couldn't). > What I now suspect was happening is, since the file did NOT exist on the > machine, the custom action simply could not execute it couldn't be found > to execute). It wasn't throwing an exception at all (the reason for the > bat file in the first place). > > So, now the question becomes: HOW do I execute it, when it has NOT been > copied onto the target machine. It is (it must be, as it is available > during install) in the msi file. Is there a way to execute it from > inside the msi file (and HOW)? Or is there a way to get it to be copied > to the %temp% directory so it can run it? > > By the way, MANY thanks for the helpful suggestions. > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:wix-users- > > [EMAIL PROTECTED] On Behalf Of Wilson, Phil > > Sent: Monday, October 16, 2006 11:05 AM > > To: wix-users@lists.sourceforge.net > > Subject: Re: [WiX-users] Uninstall Custom action > > > > REMOVE="ALL" is the right syntax. Must be time for a log: > > > > Msiexec /x {your productcode guid} /l*v somepathtoalog.log > > > > > > Phil Wilson > > > > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] On Behalf Of Dane > > Anderson > > Sent: Monday, October 16, 2006 10:53 AM > > To: wix-users@lists.sourceforge.net > > Subject: Re: [WiX-users] Uninstall Custom action > > > > No soap. I tried: > > <Custom Action="DeleteCabs" Sequence="3490">Remove="ALL"</Custom> > > and > > <Custom Action="DeleteCabs" Sequence="3490">REMOVE="ALL"</Custom> > > and > > <Custom Action="DeleteCabs" Sequence="3490">REMOVE="all"</Custom> > > and > > <Custom Action="DeleteCabs" Sequence="3490">Remove="all"</Custom> > > and > > <Custom Action="DeleteCabs" Sequence="3490">REMOVE="All"</Custom> > > and > > <Custom Action="DeleteCabs" Sequence="3490">Remove="All"</Custom> > > > > With all I got the same results. It doesn't execute the DeleteCabs > > CustomAction. > > > > > -----Original Message----- > > > From: Wilson, Phil [mailto:[EMAIL PROTECTED] > > > Sent: Monday, October 16, 2006 10:18 AM > > > To: Dane Anderson; wix-users@lists.sourceforge.net > > > Subject: RE: [WiX-users] Uninstall Custom action > > > > > > Properties are case-sensitive in that syntax you're using. Try "ALL". > > > > > > Phil Wilson > > > > > > > > > -----Original Message----- > > > From: [EMAIL PROTECTED] > > > [mailto:[EMAIL PROTECTED] On Behalf Of Dane > > > Anderson > > > Sent: Monday, October 16, 2006 9:28 AM > > > To: wix-users@lists.sourceforge.net > > > Subject: Re: [WiX-users] Uninstall Custom action > > > > > > I'm sorry to be a pest, but could you elaborate. I've tried adding - > > > REMOVE="All" > > > Everywhere I thought it MIGHT belong. In most places it won't even > > > compile. In the ONE place it does compile - <Custom > > Action="DeleteCabs" > > > Sequence="3490">REMOVE="All"</Custom> > > > (note: replaced the 'Installed' with 'REMOVE="All"') it does nothing. > > In > > > other words the custom action doesn't get executed. > > > > > > > -----Original Message----- > > > > From: [EMAIL PROTECTED] [mailto:wix-users- > > > > [EMAIL PROTECTED] On Behalf Of Rob Hamflett > > > > Sent: Monday, October 16, 2006 1:12 AM > > > > To: wix-users@lists.sourceforge.net > > > > Subject: Re: [WiX-users] Uninstall Custom action > > > > > > > > A condition of REMOVE="ALL" should be fine for uninstall CAs. > > > > > > > > Rob > > > > > > > > Dane Anderson wrote: > > > > > I have an install package that I am attempting to put together. In > > > the > > > > > process of installing > > > > > > > > > > I have it run an executable, CabInstaller.exe, that installs the > > dll > > > > > > > > contained in the .cab > > > > > > > > > > and sets some registry entries (explicitly). Some OTHER registry > > > entries > > > > > are set > > > > > > > > > > automagically (and in a completely blackbox way) by some 3^rd > > party > > > > > executables > > > > > > > > > > that CabInstaller calls during it's execution. . After being > > > executed > > > > > CabInstaller.exe is > > > > > > > > > > deleted from the target machine. I have this much working > > perfectly > > > > > > > > > > The problem I am encountering is, during an uninstall (msiexec /x > > > ...) I > > > > > need the installer > > > > > > > > > > to execute CabInstaller with an UNinstall option (CabInstaller > > > > > <cabfilename> to install > > > > > > > > > > and CabInstaller -u <cabfilename> to uninstall). So that it can > > call > > > > > > > > those 3^rd party > > > > > > > > > > executables with THEIR uninstall options. The target is to produce > > > ONE > > > > > install > > > > > > > > > > package that can be used to install or uninstall. HOW do I get the > > > FOOL > > > > > installer > > > > > > > > > > to execute a custom action ONLY when uninstalling. My wxs file > > has: > > > > > > > > > > <Directory Id="TARGETDIR" Name="SourceDir"> > > > > > > > > > > <Directory Id="TempFolder" Name="TempDir"> > > > > > > > > > > <Component Id="INTAVADLLS" DiskId="1" > > > Guid="$(env.INTAVADLSGUID)"> > > > > > > > > > > <File Id="IntavaDL.cab" Name="IntavaDL.cab" > > > > > src="C:\intava\source\Intavadl\IntavaDL.cab" Vital="yes" /> > > > > > > > > > > <File Id="CabInstaller.exe" Name="INSTALLR.EXE" > > > > > LongName="CabInstaller.exe" > > > > > > > > > > > > > > > src="C:\Intava\Source\tools\CabInstaller\Debug\CabInstaller.exe" > > > > > Vital="yes" /> > > > > > > > > > > <File Id="CabUninstallerInstall.bat" Name="CabIns.bat" > > > > > LongName="CabUninstallerInstall.bat" > > > > > > > > > > > > > src="C:\trials\SprintKioskSetup\CabUninstallerUninstall.bat" > > > > > Vital="yes" /> > > > > > > > > > > <File Id="CabUninstallerUninstall.bat" Name="CabUnins.bat" > > > > > LongName="CabUninstallerUninstall.bat" > > > > > > > > > > > > > src="C:\trials\SprintKioskSetup\CabUninstallerUninstall.bat" > > > > > Vital="yes" /> > > > > > > > > > > > > > > > <!-- For the install action --> > > > > > > > > > > <CustomAction Id="InstallIntavaDl.Dll" > > > FileKey="CabInstaller.exe" > > > > > ExeCommand="[TempFolder]IntavaDL.cab" > > > > > > > > > > Return="check" /> > > > > > > > > > > <!-- For the uninstall action --> > > > > > > > > > > <CustomAction Id="DeleteCabs" > > > FileKey="CabUninstallerUninstall.bat" > > > > > ExeCommand="" Return="check" /> > > > > > > > > > > <!-- CabUninstallerUninstall.bat wraps "%temp%\CabInstaller -u > > > > > %temp%\IntavaDL.cab" because for > > > > > > > > > > some unknown reason CabInstaller throws an exception when doing an > > > > > > > uninstall if it is being run > > > > > > > > > > directly by msiexec. It does NOT throw when run from the command > > > line. - > > > > -> > > > > > > > > > > <InstallExecuteSequence> <!-- I haven't found any > > > > > "UninstallExecuteSequence" documented so I presume this > > > > > > > > > > is the right place to put both --> > > > > > > > > > > <Custom Action="InstallIntavaDl.Dll" > > After="InstallFinalize">NOT > > > > > > > > Installed</Custom> > > > > > > > > > > <Custom Action="DeleteCabs" Sequence="3490">Installed</Custom> > > > > > > > > > > <!-- I've found the hard way, that the CabInstaller must be > > run > > > > > BEFORE InstallFinalize on an > > > > > > > > > > uninstall. AFTER InstallFinalize the CabInstaller no > > longer > > > > > > > > exists on the target machine --> > > > > > > > > > > The problem is, my DeleteCabs CustomAction NEVER gets executed, > > > EVER. I > > > > > have verified that the bat file > > > > > > > > > > executes correctly when run manually. Now I need it to be run by > > > > > msiexec. I know for a fact that msiexec > > > > > > > > > > CAN run bat files, because I have another one that deletes the > > .cab > > > and > > > > > .exe files after they've been > > > > > > > > > > used in the install. That has been verified to work, so I know it > > > can be > > > > > done. Just HOW to get it to > > > > > > > > > > run during an uninstall is what I'm beating my head against. > > > > > > > > > > > > > > > If you have any suggestions: Please send me an E-Mail > > > > > ([EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>), as I haven't > > > noticed > > > > > any links to > > > > > > > > > > join your mail list. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > - > > > > > Using Tomcat but need to do more? Need to support web services, > > > > security? > > > > > Get stuff done quickly with pre-integrated technology to make your > > > job > > > > easier > > > > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > > > > Geronimo > > > > > > > > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > > > _______________________________________________ > > > > > WiX-users mailing list > > > > > WiX-users@lists.sourceforge.net > > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > > - > > > > Using Tomcat but need to do more? Need to support web services, > > > security? > > > > Get stuff done quickly with pre-integrated technology to make your > > job > > > > > > > easier Download IBM WebSphere Application Server v.1.0.1 based on > > > > Apache > > > Geronimo > > > > > > > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > > > _______________________________________________ > > > > WiX-users mailing list > > > > WiX-users@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > ------------------------------------------------------------------------ > > > - > > > Using Tomcat but need to do more? Need to support web services, > > > security? > > > Get stuff done quickly with pre-integrated technology to make your job > > > > > easier Download IBM WebSphere Application Server v.1.0.1 based on > > Apache > > > Geronimo > > > > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > > _______________________________________________ > > > WiX-users mailing list > > > WiX-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > ------------------------------------------------------------------------ > > - > > Using Tomcat but need to do more? Need to support web services, > > security? > > Get stuff done quickly with pre-integrated technology to make your job > > easier Download IBM WebSphere Application Server v.1.0.1 based on Apache > > Geronimo > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > ------------------------------------------------------------------------ > - > > Using Tomcat but need to do more? Need to support web services, > security? > > Get stuff done quickly with pre-integrated technology to make your job > > easier > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > Geronimo > > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users