So your recommendation is to run the uninstaller as a deferred CA or just in the InstallExecuteSequence?
> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Wilson, Phil > Sent: Wednesday, October 18, 2006 4:41 PM > To: wix-users@lists.sourceforge.net > Subject: Re: [WiX-users] Install with prevous versions > > Some thoughts: > > Those non-MSI uninstallers often have a quiet switch, so if there's no > need to show the uninstall UI append that to the uninstall string. I > know the InstallShield one does, I'd expect the Wise > equivalent to have > the same. > > I don't think it's a good idea to have the uninstall custom action in > both the UI and execute sequences. There's the general point that you > shouldn't really be changing the system in the UI stage, and it will > probably bite you on Vista because you probably won't have > the required > privilege in the UI sequence (with UAC you'll be a standard > user; in the > execute sequence you'll be elevated). > > > Phil Wilson > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Arnette, > Bill > Sent: Wednesday, October 18, 2006 7:01 AM > To: wix-users@lists.sourceforge.net > Subject: Re: [WiX-users] Install with prevous versions > > > I don't think there are any path manipulation capabilities in MSI, so > you'll have to write a CA that sets INSTALLDIR from OLDINSTALL3 or > OLDINSTALL4. > > You can set a property in a CA if it is an immediate (not deferred) CA > using MsiSetProperty. Set the CA's @Execute attribute to > 'oncePerProcess' and schedule it in both the InstallUISequence and > InstallExecuteSequence so that the CA will run even if the UI is > bypassed but it will only run once if the UI is enabled. You can > condition the execution of the CA on whether OLDINSTALL3 or > OLDINSTALL4 > are non-empty. I am not sure exactly where to schedule it > though; maybe > after FindRelatedProducts? > > I have a related question. I am working with the same issue; > uninstalling previous versions that were not MSI installs. > > This is what I did: > > <CustomAction Id="UninstallOldVersion" Return="check" > Execute="oncePerProcess" BinaryKey="MyCAs" > DllEntry="UninstallOldProducts" /> > <Binary Id="MyCAs" SourceFile="bin\MyCAs.dll" /> > > <Property Id="OLDPRODUCTFOUND"> > <RegistrySearch Id="rs_FindOldProducts" Root="HKLM" > Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\MyApp" > Name="DisplayName" Type="raw"/> > </Property> > > <InstallUISequence> > <Custom Action="UninstallPreviousAudioVersion" > After="FindRelatedProducts">NOT Installed AND OLDPRODUCTFOUND</Custom> > </InstallUISequence> > > <InstallExecuteSequence> > <RemoveExistingProducts After="InstallInitialize" /> > <Custom Action="UninstallOldVersion" > After="RemoveExistingProducts">NOT Installed AND > OLDPRODUCTFOUND</Custom> > </InstallExecuteSequence> > > The RegistrySearch checks that the old product exists on the target > machine. > > The UninstallOldProducts CA runs the old version's uninstaller (a WISE > uninstaller) as an immediate CA but only if the old product is found. > The CA basically just executes the ARP UninstallString. > > The effect is, the user starts the installer, the old > installer appears > to guide the user through uninstalling the old product, then the MSI's > UI appears. > > I don't know if this is good practice or not. Maybe the experts could > chime in here. Should my bootstrapper handle the > uninstallation of the > previous non-MSI installation? Or is it OK to do this an immediate CA > like above? > > Should the CA be scheduled somewhere else? I didn't think doing it > deferred would be good because the user would go through the MSI > installer UI and then be presented with the WISE uninstaller UI. > > Thoughts? > > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] On Behalf Of Anton > > Filippov > > Sent: Wednesday, October 18, 2006 7:45 AM > > To: wix-users@lists.sourceforge.net > > Subject: [WiX-users] Install with prevous versions > > > > Hello > > > > I write installer in WiX for product. > > This is new installer and this product already have old versions, > > wrote in other installer (NSIS). > > I search for older versions like this: > > > > <Property Id='OLDINSTALLV4'> > > <RegistrySearch Id="RegSearchVersion4" Type='raw' Root='HKLM' > > Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\Solver4' > > Name='UninstallString' /> > > </Property> > > <Property Id='OLDINSTALLV3'> > > <RegistrySearch Id="RegSearchVersion3" Type='raw' Root='HKLM' > > Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\Solver3' > > Name='UninstallString' /> > > </Property> > > > > UnsinstallString contains file path for uninstall.exe for older > > versions, like "C:\program Files\Solver3\uninstall.exe" > > > > And if OLDINSTALL3 is present, I should set INSTALLDIR to > OLDINSTALL3. > > OLDINSTALL4 in same way. > > > > Question: > > How to remove "...\uninstall.exe" (can I do this without CA > type 1, 2, > > > 17, 18)? > > > > Or If I can't remove this substring standart method, how to set > > INSTALLDIR property from CA? > > As I understood, deferred CA can set only one property with > name, like > > > CA Id. > > But how to set other properties? > > > > Thank you > > > > -------------------------------------------------------------- > > ----------- > > 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