This kind of problem is caused by the fact that some "features" are listed in the registry as present in the MSI file, so Windows Installer needs that MSI file and no other in order to perform several housekeeping tasks.
The easiest solution, if you can do it, is to locate the exact version of the MSI file and put it where the system expects to find it.
No luck
If you do not have that version, you can try MS Installer Cleanup, which has been obsoleted because of conflicts with Office 2007 (you'll have to google); or the Microsoft Fix It solution.
If that works, all well and good.
Bad luck
If it does not (and alas, sometimes it does not), you can try and do that by hand.
Start by getting the stabler system possible by rebooting, running a registry cleanup with Piriform's CCleaner or something like it, and rebooting again (not always necessary, but just for luck).
CCleaner also has an option to remove Installer entries. Try removing yours, and see if that's enough to allow you to reinstall the new MSI; it could save you all the work described below.
Worse luck
For example, I had this problem with Google Earth. In the Registry, there was this key
HKEY_CLASSES_ROOT\Installer\Products\0C22D86408082E118BE68BCAF689CC3E\SourceList
where the LastUsedSource
value reported n;1;C:\DOCUME~1\LEONAR~1\IMPOST~1\Temp\._msige61\
and PackageName
was "Google Earth.msi".
The key just below (in my case 0C22D86408082E118BE68BCAF689CC3E, of course yours will be different) holds a Version
key which can be used to locate the appropriate MSI file.
If the MSI file is no longer available and cannot be downloaded from anywhere else, or there are too many MSI files to download them all (you can't inspect the version number until you have downloaded the whole file locally), what you can do is to erase the references to the installer package by looking for the .MSI name in the Registry (remember to backup the registry first).
This will leave you with the application installed, but now the system doesn't know it is installed and will allow reinstallation.
In some cases, once the MSI Installer has started the installation, the installation script will balk at the sight of some files it thinks shouldn't be there. Most installers will just overwrite them, but some might not. In that case you will also have to delete the installation directory first, or move it somewhere else.
This will leave you with a damaged installation (and should never be done with system applications - you could even make your system unbootable), and a further registry cleanup with CCleaner would be a good idea.
But now the system should be "clean enough" of the old installation that the new installation may proceed without troubles. Any system hooks left dangling from the old install will be rewritten by the new, and if the versions aren't too far apart, none of the obsolete calls will survive.
If you wanted to uninstall the software, now you should be able to do it and leave the system in a stable state.
I had to follow this procedure several times due to a rogue "delete unused files and reclaim disk space!" utility, last year, that wasn't too picky about what exactly an "unused file" was. With the exception of one Microsoft Office 2010 installation, that I had to wipe and restore from the original CDs, about 75% of the installs were recovered either through MSICUU2/Fix It or removing the entry with CCleaner; most of the others could be removed by removing the MSI entries in the registry; maybe one in twenty required also removing the installation directory.
(Anyone reading this, and wanting to follow the procedure with SkyPE "before MS acquisition" and SkyPE "after MS acquisition", don't. I had to resort to removing all SkyPE-related entries from everywhere and rebooting four or five times. Afterwards I stumbled upon a Google archive with all SkyPE MSI installers complete with six-digit version numbers, that could probably have fixed the problem in no time).