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

Reply via email to