Hi guys,

 

I have been battling with this problem for a while.

I have a .Net application which saves temporary data into
AppData\Roaming\Bookmarks.

This folder should not HAVE to be installed by the MSI as the app will
create it when needed (but I've gotten to the stage of experimentation
where it seems to be easier if it is created by the MSI - the installer
seems to not want to remove folders it didn't create, no matter what I
do).

I want this folder (and all its contents) to be removed at uninstall if
REMOVEBOOKMARKS=1 (I have created a custom dialog with a checkbox that
lets the user selected during uninstall whether or not to delete these
temporary files). If REMOVEBOOKMARKS=0, then I don't want to delete the
folder (or its contents), allowing any later installations to pick up
these files...

 

My WiX looks something like this:

 

<Property Id="REMOVEBOOKMARKS" Value="0"/>

 

<Directory Id="AppDataFolder">

        <Directory Id="MyApp" Name="MyApp">

          <Component Id="RemoveAppData"
Guid="8C857E65-5EA2-4b0e-BCDA-334F030B1E4A">

            <Condition>REMOVEBOOKMARKS = 1</Condition>

 

            <RegistryKey Root="HKCU" Key="Software\MyApp\Uninstall\1">

              <RegistryValue Value="MyApp" Type="string" KeyPath="yes"
/>

            </RegistryKey>

 

            <CreateFolder />

            <RemoveFolder Id="RemoveAppData" On="uninstall" />

            <RemoveFile Id="RemoveAppDataFiles" Name="*"
On="uninstall"/>

          </Component>

          <Directory Id="Bookmarks" Name="Bookmarks">

            <Component Id="AddAppDataBookmarks"
Guid="3494B400-3193-4226-878C-2A4EB1B86456" Permanent="yes" >

              <Condition>NOT Installed</Condition>

 

              <RegistryKey Root="HKCU" Key="Software\MyApp\Uninstall\3">

                <RegistryValue Value="MyApp" Type="string" KeyPath="yes"
/>

              </RegistryKey>

 

              

              <CreateFolder />

            </Component>

            <Component Id="RemoveAppDataBookmarks"
Guid="3494B400-3193-4226-878C-2A4EB1B86455">

              <Condition>Installed AND REMOVEBOOKMARKS = 1</Condition>

 

              <RegistryKey Root="HKCU" Key="Software\MyApp\Uninstall\3">

                <RegistryValue Value="MyApp" Type="string" KeyPath="yes"
/>

              </RegistryKey>

 

              <!--<CreateFolder />-->

              <RemoveFolder Id="RemoveAppDataBookmarks" On="uninstall"/>

              <RemoveFile Id="RemoveAppDataBookmarksFiles" Name="*"
On="uninstall"/>

            </Component>

          </Directory>

        </Directory>

      </Directory>

 

The Bookrmarks folder is the one I want to stay behind if
REMOVEBOOKMARKS=0.

It seems, no matter what I do, I can't get it to work. If I specify
"Permanent" on the AddAppDataBookmarks component, the NOTHING will
remove it.

If I DONT specify it, then no matter what I put in the component
conditions, it will ALWAYS be removed...

 

How do I set up this sort of behaviour?

 

Thank you in advance...

 

Adam Langley

Senior Developer

Tel: +64 9 486 9010

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to