Hi Everyone:

I'd like to do the following:
  1. Include a per-feature uninstall queue
  2. write the list of user-selected features to a text file
  3. at uninstall time present the options to selectively uninstall or completely uninstall
  4. if the user chooses to selectively uninstall a dialog similar to the one shown at install time (custom install) will show up with the features already installed and if the user checks the box the selected (checked) features will be removed based on the per-feature uninstall queue and update the list of installed features


I'd also like to do the following somehow:
  1. Prompt the user if he/she wants to cache the installer files (by radio buttons dialog)
  2. If yes, copy only the installer files relevant to the features selected to a directory of my choosing
  3. if no put where the install was started from so if the user chooses to add features later or repair the installation the utility knows what features to reinstall (repair) and where this data is found (either on the installation source or in the installer cache).
  4. Given the ideas from above present a dialog that reads in what features are already installed and gives the opportunity to add additional features at a later time and update the custom install queue when done


I have a general idea but would appreciate some input on how to accomplish this if I build a custom uninstall include script to support full/partial removal, repair options, and adding features.

My idea was to add a dialog to the uninstall utility (radio buttons) and give the following options:
* Add Features: Allows you to select additional features to install which were not selected at install time
* Remove Features: Allows you to remove one or more of the features that are currently installed on this system
* Repair Installation: Fix a broken installation by re-running the installation process for the features and configuration selected at install time
* Uninstall: Completely remove the application and all of its components.

based on the user selection from the dialog as described above the uninstaller would then carry out the selected action while ensuring to update the list of features present and use the correct custom uninstall queues even after several rounds of adding/removing features or even several repairs. Should a user make changes (such as adding features or removing features prior to a repair the repair should be smart enough to use the most up do date configuration information)

any ideas on implementing thee features would be greatly appreciated