1. There is a WcaAddTempRecord(). That will do most of the work. 2. netshortcuts.cpp uses it for CreateFolder, that's pretty similar.
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ryan O'Neill Sent: Friday, June 27, 2008 00:39 To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] optionally removing AppData folders created by application, during uninstall I've got most of this custom action already written, but I do the delete directly as I never managed to figure out linking into the RemoveFile table. Not that I put that much effort in, I was pretty wiped out after having to figure a load of C++. Do you have an example of this Rob? If so, I'll update my CA and release the source. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rob Mensching Sent: 27 June 2008 07:41 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] optionally removing AppData folders created by application, during uninstall Unfortunately, I think you will have to resort to a Custom Action to get the behavior you want. However, rather than delete files, just add temporary records to RemoveFie table for the appropriate Component to do the removal when you want it done. Using temporary records lets the windows installer handle the execution and rollback for you. Far less code. <smile/> -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Adam Langley Sent: Thursday, June 26, 2008 21:11 To: WiX-users@lists.sourceforge.net Subject: [WiX-users] optionally removing AppData folders created by application, during uninstall 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 ------------------------------------------------------------------------- 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 No virus found in this incoming message. Checked by AVG. Version: 8.0.101 / Virus Database: 270.4.1/1521 - Release Date: 26/06/2008 11:20 ------------------------------------------------------------------------- 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 ------------------------------------------------------------------------- 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