- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Uninstall does not remember global variable feature target
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
I am writing an installer to install data to a different, user-defined location than the application code. The "App Code" feature is being installed to TARGETDIR, and "App Data" is being installed to DATA_DIR.
The dialogs, installation and uninstallation are working, almost. The problem is at the end of the uninstall process (OnMaintUIAfter), I need to call my custom function RemoveEmptyFolders(/*string*/ path, /* bool */ removeRoot) which recursively deletes all empty folders from the data directory, including the root folder, if removeRoot = TRUE. At this point, RemoveEmptyFolders() does not know DATA_DIR on uninstall, but it remembers TARGETDIR.
I declared DATA_DIR as a global STRING variable. Data components are defined to install at <DATA_DIR>\whatever_subfolder, and they are associated with the "App Data" feature. FeatureSetTarget("App Data", "<DATA_DIR>", path) worked to get the feature and all its components to install to the correct place.
On uninstall, all files are successfully removed from both TARGETDIR and DATA_DIR. However there are a bunch of empty folders left over inside the DATA_DIR folder. So RemoveEmptyFolders() didn't work for that location. It worked for TARGETDIR, so it's not the function itself.
Debug messages reveal that InstallShield has no idea what DATA_DIR is at uninstall time. RemoveEmptyFolders() started trying to traverse paths I've never even seen before, that start with .\whateverfolder. Yikes. I put in a check to make sure the path != "", so at least it won't do that anymore.
How did InstallShield know where to uninstall the "App Data" files from? How can I grab that path value at uninstall time, so I can pass it to my function and delete empty folders? If the DATA_DIR value is not in the log, then what IS in the log that tells InstallShield where to uninstall the "App Data" files?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
see here I think this is the same problem:
regards
Markus
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
see here I think this is the same problem:
regards
Markus
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Yes, it does sound like the same problem. I'll try TextSubSetValue and TextSubGetValue. If that works, I'll mark your suggestion as the answer. Thanks!