The MSI doesn't repair when the install source is removed from its original location. How can it be fixed?
Here's the scenario:
1. Install the MSI (Having compressed/uncompressed files at its side).
2. Remove the source from its location on the machine.
4. The active setup runs (with switches /fup). But the repair fails with following prompt. It goes looking for the original source from where it was installed.
Isn't the installer supposed to go and look for it in the "%Windir%\installer" folder. It doesn't, which means I am wrong. Is there something to do with the SOURCELIST property? Please suggest, how can it be fixed.
Also, this doesn't happen when I try to repair only the registry keys .i.e with /fu.
Any help will be greatly appreciated!!
Thanks in advance!!!
Please log in to answer
Posted by: Badger 6 years ago
Posted by: EdT 6 years ago
Repair takes place at a feature level, so if the resource being repaired is a file, then the original source must be available as the locally cached copy of the MSI in the c:\windows\installer folder DOES NOT INCLUDE the internal or external CAB files. Registry fixes work, since Windows Installer V2, because the registry keys are in the registry table, which is available in the locally cached MSI.
With the arrival of Windows Installer V5, the entire MSI is cached locally, including the files, so that uninstalls don't fail due to the signing of the MSI being damaged by the removal of internal CAB streams. However, due to a lack of joined up thinking, Microsoft did not adjust their software to use this local source for repair purposes.
To get around this, I documented a workaround which you can find here: