I'm trying to figure out how Windows (XP through 7) is handling installation and uninstallation of MSI files. I have come up in situations where Windows Installer is unable to uninstall because it's missing the original MSI file, which leads me to believe that it stores a copy of all installed MSI packages somewhere. Where?
I've had a couple of theories.
It expectes it to reside in the same folder as it was installed from. The registry keys in
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstalldoes point to the original installation folder, and error messages when the MSI file is missing often point to this. Removing the MSI file from this folder does not hinder the uninstallation process though, so I've refused this theory.
C:\Windows\Installer. This folder actually contains a bunch of seemingly randomly named MSI files. But this list is incomplete. I do find entries in the registry key mentioned in 1) which does not have an MSI copy in this folder.
So how does this work? How is windows installer able to uninstall MSI-installed applications even though the MSI is not in 1) and not in 2)?