Thanks, what I did is same as what you suggested. The difference is yours CA has condition but mine is setting the INSTALLDIR property immediately. I checked some sample code of Wix, and found that some of them do not use registry to store install path and can also get user specified path when uninstalling. How can I do that? I am seeking a way not using registry.
-----Original Message----- From: Kevin Richardson [mailto:[EMAIL PROTECTED] Sent: 2008/11/25 0:01 To: Jianjun An (Person Consulting) Cc: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] How can I get the correct INSTALLDIR at the beginning of uninstall? You probably want the directory tree to look like this: > <Directory Id="TARGETDIR" Name="SourceDir"> > <Directory Id="ProgramFilesFolder" Name="Program Files"> > <Directory Id="MyAppFolder" Name="myappname"> > <Directory Id="INSTALLDIR /> > </Directory> > </Directory> > </Directory> This sets INSTALLDIR to be (by default) Program Files\myappname. You shouldn't have to do anything special to uninstall the application. I write INSTALLDIR to the registry to store the path for use later (i.e. during upgrades, instead of using the default directory, it remembers their preference). My INSTALLDIR registry stuff looks like this: <!-- Existing install path --> <Property Id="EXISTINGINSTALLDIR" Secure="yes"> <RegistrySearch Id="Locate_EXISTINGINSTALLDIR" Root="HKLM" Key="SOFTWARE\Company\Product" Name="InstallPath" Type="directory" /> </Property> <!-- custom action specification --> <CustomAction Id="Set_INSTALLDIR" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" /> <InstallExecuteSequence> ... <Custom Action="Set_INSTALLDIR" After="FileCost"><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom> ... </InstallExecuteSequence> <InstallUISequence> ... <Custom Action="Set_INSTALLDIR" After="FileCost"><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom> ... </InstallUISequence> -kevin On Nov 24, 2008, at 9:23 AM, [EMAIL PROTECTED] wrote: > Date: Mon, 24 Nov 2008 21:25:05 +0800 > From: "Jianjun An (Person Consulting)" <[EMAIL PROTECTED]> > Subject: [WiX-users] How can I get the correct INSTALLDIR at the > beginning of uninstall? > To: "wix-users@lists.sourceforge.net" > <wix-users@lists.sourceforge.net> > Message-ID: > <[EMAIL PROTECTED] > > > > Content-Type: text/plain; charset="us-ascii" > > Hi: > > I wrote a MSI file to install my application. It can let user select > install path through BrowseDlg. But once user changes the default > install path, it cannot remove any file which the MSI has installed. > > I checked the installation log file. I found that it cannot get the > correct INSTALLDIR at the beginning of uninstall. The path it got > still is the default value "c:\programe files\myappname" > I found an awkward solution: write the INSTALLDIR to registry and > read it when uninstalling. > > Is there any other better solution? > > > A piece of wxs code looks like following: > > <Directory Id="TARGETDIR" Name="SourceDir"> > <Directory Id="ProgramFilesFolder" Name="PFiles"> > <Directory Id="INSTALLDIR" Name="."> > <Directory Id="MyApp" Name=" myappname "> > < File ......... /> > </Directory> > </Directory> > </Directory> > </Directory> > > <Property Id='INSTALLDIR'> > <RegistrySearch Id="PreviousInstallLocationRegistrySearch" > Root="HKLM" Key="SOFTWARE\myappname" > Name="InstallDir" Type="raw"/> > </Property> ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users