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

Reply via email to