When doing an upgrade, I need to detect whether a feature has been installed from an earlier version.
When doing an installation, you can detect whether the same product (i.e. same ProductCode) is already installed by using the Installed property, but how do you detect whether an earlier version has been installed (i.e. same UpgradeCode, but different ProductCode and earlier version number)?
Once you've detected whether an earlier version is installed, how do you detect if a feature has been installed from that version? I can't just check for the presence of files, because the files may have been copied manually, rather than being installed by the installer.