Lately a lot of my installs started trying to install MS C++
redistributable but to do so it needs to uninstall the old version.
However it can not "find the source" and keeps asking me to insert
disk 1 or browse to it's source. Well I don't have either and thus my
installs are failing because they can not remove the old version.
I've tried downloading the redistributable but the same thing happens
I NEED THE SOURCE DISK
how can I get it uninstalled or at least make the OS think it is
uninstalled so that it continues?
Hi Bill,
Which version of the redist do you have already installed, and which version
are you trying to install now?
If Uninstall prompts you for a the source disc, it's probably because the
cached MSI file has been deleted, or the original source directory no longer
exists. MSIexec will store info about the installation in the Registry,
under the Installer key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
For the VS2005 SP1 redist, the product code is
"b25099274a207264182f8181add555d0". So the install info is stored in
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\b25099274a207264182f8181add555d0
If you have a different version of the redist installed, you may need to
poke around a bit to find the right one. Look for the "DisplayName" value,
under the InstallProperties sub-key.
There are 2 interesting values here:
"InstallSource" the location of the MSI file the redist was installed from;
"Local Package" -the cached local copy of the MSI file
If the Installer cannot locate the MSI file using either of these values, it
will throw up the error message you saw when uninstalling or modifying an
installation.
If you have the MSI file from the existing Redist package you have
installed, you can drop it in a directory or network share somewhere; then
change the "InstallSource" value to point towards this valid copy of the
MSI.
You can extract the MSI and CAB file from the redist EXE file by running
"vcredist /C /T:C:\TEMP\VCREDIST" to unpack the files into a dir called
C:\TEM\VCREDIST. Obviously you can change the directory on the /T: parameter
to suite your local requirements.
So in summary:
- inspect Registry, find that the old InstallSource is set to (for example)
C:\TEMP\INSTALL
- extract MSI file from old redist EXE, copy it to C:\TEMP\INSTALL
- now run Uninstall either via GUI, or using "msiexec /X {GUID}" command
line.
Let us know how you get on,