Visual Studio 2008 SP1 may complain that another patch is installed even after removing it
If Visual Studio 2008 SP1 prompts you to run the Microsoft Visual Studio Patch removal tool, it means that a patch or product is installed that would cause issues when installing VS2008 SP1. The dialog is shown below.
If you run the the patch removal tool and are still seeing this dialog, please follow the workaround below.
You will need to search and possible modify your machine’s registry.
Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
You need to search for “E4F34490B4BE97847AB7446D8AB3D908” which is a representation of the patch code for SP1 Beta – ENU. Only if it is found under key locations described below can you remove it.
- Click Start and then click Run.
- In the Open box, type regedit.exe and click OK. If you are prompted with a User Account Control (UAC) dialog, please authenticate as an administrator or click Continue.
- In the Registry Editor, click on the very top node on the left.
- Click on the Edit menu and then Find.
- Paste “E4F34490B4BE97847AB7446D8AB3D908” (without quotes) into the Find dialog, and click Find Next.
- For each key location it’s found, take note of the path shown in the status bar at the bottom of the Registry Editor window. You may also click on the Favorites menu and click Add to Favorites, then record the full key location.
If you find this key under “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18Products” then the patch is still installed for a product. Try running the patch removal tool again and make sure it completes successfully. If you’re prompted for source, please provide that source to continue.
If you do not find this key under “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18Products” then you may delete the other keys where this was found. This may include one or both of the following locations.
If you do find it under “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18PatchesE4F34490B4BE97847AB7446D8AB3D908”, before deleting that key look at the LocalPackage value in that key. If that file exists you may delete it but only if “E4F34490B4BE97847AB7446D8AB3D908” was not found under “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18Products” anywhere.
Other patch code representations that the removal tool searches for are listed below. If you continue to have problems after following the steps above, please follow the directions replacing “E4F34490B4BE97847AB7446D8AB3D908” with each of the codes below.
|94E9A4505F113244FB4A3C28380E768A||VS 2008 SP1 Beta – JPN|
|9C468D694DD2B6B43A37E83C10FB9BDC||VS 2008 SP1 Beta – ENU|
|E0C2BE1E3AD62954F9889DB3B7EB8DE9||VS 2008 SP1 Beta – JPN|
|785EB8DAEAC5A0C43986F470702962A2||VS 2008 SP1 Beta – ENU|
|879E3F5E6076B744EBA74D306B78A666||VS 2008 SP1 Beta – JPN|
|39B697780D497C0AFE4CFF43246662CB||WinSDK for VS 2008 SP1 Beta|
|B6CB70ACD357B9847BB73583153965BE||WinSDK for VS 2008 SP1 Beta – ENU|
|87AA009B3D988074B9983389699E0D47||WinSDK for VS 2008 SP1 Beta – JPN|
|A09F7473B850ED84B84A805EE9C85218||Remote Debugger (Kb944899) (v1)|
|2C3B4567357090C4CBD2FA9F6A3E92EF||Silverlight Tools 2 Beta 1|
|970C23E898B72094ABE1D569D8A2D119||VS Shell SP1 Beta – ENU|
|E4E045C3623C16E43A1C2F6693C19081||VS Shell SP1 Beta – JPN|
VS2008 SP1 calls MsiGetPatchInfo() to determine if the patch is already installed before it attempts to download it if needed. This API does not require a ProductCode and checks the bulleted locations above for product-independent information which is only the LocalPackage. The source list for the patch is also stored independently of the product but is not relevant.
Since the patch removal tool does not need to carry payload, a list of target ProductCodes is authored into the package and the tool calls MsiGetPatchInfoEx() which does require a ProductCode. This queries the product-specific key under “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerUserDataS-1-5-18Products” for product-specific patch information.
Windows Installer should remove the patch when the last product to which the patch is applied is removed or has the patch uninstalled from it. That is, when the patch is no longer applied to any products on the machine the patch information should be removed completely and the cached patch package itself removed from the %WINDIR%Installer directory. If you run msizap.exe on products to which the patch was applied it can cause this problem since msizap is not uninstall. Some other applications also wrap msizap and can cause the same issue.