I knew it was all going too smoothly…
I’ve just been upgrading a few instances of SQL Server 2005 to SP3 (I know, I know…). Things have been mostly going well, until I got to one server that threw up the following error:
Client Components failed to install. This patch package could not be opened. Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package. C:\Windows\Installer\236d78.msi
Charming, I’m sure. The named package does exist – I checked. I can access it. I’ve run it manually, and got the same error.
Now what? Googling brought me to a blog post from the MSDN team entitled “How to put the installer cache back together“, which sounded hopeful. Skimming through, however, it quickly became apparent that a large dose of caffeine was required, so make sure you’ve got a mug handy.
The gist of it appears to be as follows:
- The C:\Windows\Installer directory is full of MSI files from all previous installations.
- Don’t delete these under any circumstances.
- The names of these files are randomised for your (in)convenience so you can’t just copy one from another machine.
- Look in the registry under HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData for the MSI you’re missing.
Right. So, going on what I see here, I went to another server that I had successfully upgraded, found out which MSI to copy by looking for the “Microsoft SQL Server 2005 Tools” in the InstallProperties section, and copied (and renamed) it.
Re-running the SP installer didn’t help at this point – it asked this time for the installation path to the original sqlrun_tools.msi.
Running the MSI that I’d just copied, on the other hand, seemed like it might be helpful:
But alas, it was not to be:
So, I’m slightly stumped. Another suggestion elsewhere recommends uninstalling the client tools, and provides a couple of command lines to run, but as these failed for me, I won’t put them here.
But I think this is the way to go… But apparently I need to reboot the server before it’ll let me run the uninstaller. *sigh*.
EDIT: MS KB article 909967 looks helpful too.