>>Yes, it can be done, at least with InstallShield Professional, but it requires custom scripting.
>
>Could you expand? AFAIK, you can't write an uninstall script.
Pretty simple, really. We break up our install into multiple scripts, and dispatch them based on SDDialogs fired in our main script. Each subordinate script is uninstallable in and of itself as an individual component.
To selectively uninstall, we write an app that examines what component uninstalls are available, and the component uninstaller invokes the ones desired by the user. Once no components are left, we fire the uninstall script for the covering install. Not tough, but requires planning and understanding about component cross-dependencies, to ensure that you don't allow removal of a component that some other, still present, component requires.
>
>BTW, did you see that they want two hundred bucks for 5.5? Those guys are robbers, and with such a crappy product!
Frankly, we've been playing around with the Setup API and Windows Scripting Host - it's likely that we'll start rolling our own installers using the facilities built into the operating system! As it stands now, we have to write a fair amount of script code to get everything in place and working the way we want, especially since we've started using application hives to handle registry key synchronization. Aside from some cosmetics, there isn't much that InstallShield would buy us at this point.