Here’s the problem:
I have a clean Win7 RC box with VS 2008 SP1 installed and a working SQL 2008 Express “Data Base Engine” (installed via the Web Platform Installer). I discovered that SQL Management Studio Express was missing, and there began my long and frustrating journey to install Microsoft’s SQL management tools…
I’m not sure why the tools were missing in the first place, but it turns-out that there is no simple way to install them. There is no separate installer for the tools as there was (so conveniently) for SQL Server 2005. [UPDATE: After fighting a long battle, I rediscovered an option in the new Web Platform Installer to add the SQL Management Tools to SQL Server 2008. A little late now to know if that would have worked, but hopefully you can give that a try before getting too far on your own painful SQL Server 2008 journey.]
Enter the SQL Server 2008 installer. After countless attempts to “add” the tools to my existing install, I could never get the installer to provide me with the desired options. Not one to waste time “fighting software,” I uninstalled SQL Server 2008 and started fresh. To my dismay, the SQL Server 2008 Installer started throwing this install-blocking error at me when trying to re-install:
Setup will not complete because the rule "Previous releases of Microsoft Visual Studio 2008" failed.
This message further asserts that you must install Visual Studio 2008 SP1 before the installer will continue. But…like many others, I already installed SP1!
So, I began looking for hacks around the installer. There are many options scattered across the web, but the tip that finally made things clear is this:
The SQL Server 2008 installer is checking the HKLM\SOFTWARE\Microsoft\DevDiv\XXX\Servicing\9.0\SP reg keys to tell if SP1 is installed. If you inspect those keys and find any SP keys with the value “0,” that is your road block.
As it turns out, every installed version of Visual Studio 2008 must have SP1 installed for the SQL Server 2008 installer to work. This leads to the other main source of confusion:
If you installed SP1 for your “main” VS 2008 version (such as Pro or VSTS)- and you’re sure of it- there is probably some other version of VS installed that does not have SP1 installed (such as Express or- as in my case- Shell).
Inspecting your reg keys is the fastest way to discover if such a version is installed. In my case, I discovered that there was an entry for both “VSTS” and “IDE” in my Visual Studio reg keys. VSTS was my main Visual Studio version, and its SP reg key correctly indicated that SP1 was installed. For the IDE entry, though, the version was listed as RTM with no SP.
What is the “IDE” version of Visual Studio?
Thanks to the info on Heath Stewart’s blog, we learn that this reg key entry is for Visual Studio Shell edition. It’s not clear when this version of VS2008 is being installed (or how important it is for other programs), but uninstalling it or upgrading it to SP1 is yet another way to solve your SQL Server 2008 install problems.
One more handy tip.
If you really want to take a blunt-force approach to any of the SQL Server 2008 “warnings,” there are command line switches that enable you to bypass some of the rule checks. Originally revealed by “Paul” in the comments of another blog post, you can use the following switch to launch your SQL Server 2008 installer with the VS version check and “reboot required” rules disabled:
setup /ACTION=install /SkipRules=VSShellInstalledRule RebootRequiredCheck
Based the sheer volume of comments and blog posts already on the Interwebs about this very topic, it would seem that Microsoft may have regressed a bit with the release of SQL Server 2008. I’m sure there are plenty of “good reasons” for why SQL Server 2008 “has” to be so dependent on VS 2008, but the end result is clearly lots of frustration for users. I hope MSFT takes note and makes things simpler for the next version. I know many hours of frustration will be saved if they do!