SQL Server 2008, Visual Studio 2008 SP1, and .Net Framework 3.5 SP1 explained....
PLEASE NOTE: This blog post has been updated from its original posting to clarify other details about installation of SQL Server 2008 and Visual Studio 2008 SP1.
I must say that I'm personally proud to see our release of SQL Server 2008. I've been involved with the product team on this release since its early inception in December of 2004 so this moment does bring me great satisfaction.
I've posted a few entries already on features specific to SQL Sever 2008 that are important to CSS, one of them called Extended Events. I'll continue to regularly post more about the release over the coming months especially leading up to this year's PASS conference in Seattle in November (where CSS will once again come prepared to share our experiences and knowledge of internals).
One of the jobs of CSS is to help customers with issues they encounter and our team is ready to help you when you contact us on SQL Server 2008. In that spirit, I want to make sure you know about a possible issue you might encounter today if you download SQL Sever 2008 and attempt to install it on a machine with Visual Studio 2008 already installed. If you have previously installed a CTP build of SQL Server 2008 you may also be affected by this problem so please read this carefully.
If you have Visual Studio 2008 (any version prior to SP1) already installed, SQL Server 2008 installation will block you from installing if you pick any one of the following features:
- Business Intelligence Development Studio
- Integration Services
- Management Tools (Either Basic or Full)
If you do not select one of these features, then you will not encounter the problem I'm about to describe. If you don't have Visual Studio 2008 already installed and have never installed a CTP build of SQL Server 2008, you should not have this problem.
You may also encounter this problem if you have installed a CTP build of SQL Server 2008 prior to the SQL Server 2008 RTM installation. This is because if you picked the above SQL features when installing a SQL Server 2008 CTP build, we will install the following Visual Studio component on your system which creates registry keys that are used as part of our rule check: Visual Studio 2008 Shell (integrated mode). But from our CTP builds this component is not at the SP1 level.
If you have picked one of these SQL features as part of the SQL Server 2008 RTM setup, then at the screen titled Installation Rules, you will encounter a failure that will prevent you from proceeding as seen by the following screen examples:
Notice the Next button is grayed out preventing you from proceeding with the installation. If you select the link for "Failed" you get this dialog box:
To give you a behind the scenes look, the Installation rule check here is looking in the registry to see if VS 2008 SP1 has been installed on your system. The installation by SQL Server 2008 CTP builds of the Visual Studio 2008 Shell (integrated mode) component creates one of these registry keys giving the appearance to our rule check that a Visual Studio SKU has been installed but the version is not SP1.
Note for those struggling to figure out the details of this check. The registry key we are attempting to look for is:
Be aware that if you are on x64, Visual Studio IDE is 32bit so the key will be:
SQL Server 2008 RTM requires the Visual Studio SP1 versions of these components. So we bundled with our SQL Server 2008 RTM setup the necessary SP1 updates for these. However, we did not include the full release of VS 2008 SP1 with our setup. If we didn't block this in our setup, you would be left with an installation of Visual Studio that is not supported (part of VS would have SP1 bits and part would not). So the decision was made to check for this condition during our setup and prevent you from being placed in an unsupported state. This is also why you may be blocked if you had installed a SQL Server 2008 CTP build, had uninstalled it, but had not manually uninstalled the Visual Studio 2008 Shell (integrated mode) component. Our SQL CTP uninstall does not uninstall this Visual Studio component.
We have documented this situation in our Release Notes for the product which you can read on the download page, through the readme.htm file, or through the direct link off the download center which I've provided here:
The Release Notes also refer to a KB article which describes this situation: http://support.microsoft.com/kb/956139. This is a good time to ask that anyone installing our product to take time to read the Release Notes and readme thoroughly before you go through SQL Server 2008 setup.
So what is the resolution for this issue? Most customers are in this state because they have installed VS 2008 RTM. This is why the installation rule says to install VS 2008 SP1. For those who have encountered this because of a SQL Server 2008 CTP build, I have a solution for you as well, but it is not to install VS 2008 SP1. Read on and I'll give you the solutions you need.
If you have installed Visual Studio 2008 RTM, you have the following 3 options:
1) Install VS 2008 SP1 from here. You don't even have to exit the setup screen from SQL Server 2008 where you were blocked. Simply put on VS 2008 SP1 (installing VS 2008 SP1 does take some time so I realize "Simply" is maybe not the best choice of words here) and on the Install Rules screen select the button Re-run at the top right. Now you should not get a failure and can select the Next button to proceed with installation.
When you have applied VS 2008 SP1, The "About Microsoft Visual Studio" menu selection which shows version information should say:
Microsoft Visual Studio 2008
Version 9.0.30729.1 SP
Microsoft .NET Framework
Version 3.5 SP1
2) Uninstall VS 2008 completely and then install SQL Server 2008. Then install VS 2008 RTM and immediately apply VS 2008 SP1. Just applying VS 2008 RTM after SQL Server 2008 RTM leaves you in an unsupported state with possible problems when using Visual Studio 2008 (we don't know of any issues you would have with SQL Server 2008). This option may be something to consider should you have an issue with VS 2008 SP1 but need to get SQL installed while you are trying to figure out the problem.
3) When you install SQL Server 2008, don't select one of the features I listed at the top of this post that requires VS 2008 SP1 binaries: Business Intelligence Development Studio, Integration Services, or Management Tools (Basic or Custom). After you decide to install VS 2008 SP1, you can go back and install these features.
If you have not installed Visual Studio 2008 RTM but have this problem it is because Visual Studio 2008 Shell (integrated mode) is installed on your system but not at the SP1 level. This is probably because it was left over from a SQL Server 2008 CTP installation.
Your solution is simple: Uninstall this component either through Add/Remove Programs or Programs/Features Uninstall. I also recommend you uninstall the component Visual Studio Tools for Applications 2.0 as part of this if it exists. Both of these could have been left over from your SQL 2008 CTP installation. You can even do this while the SQL Server 2008 setup Installation Rules screen is still active. Just uninstall these and select Re-run to proceed with the installation.
I want to also make 4 other important points to clarify some questions on this topic:
1) If you have not installed Visual Studio 2008, then you should not have this problem unless you have previously installed a CTP build of SQL Server 2008. Furthermore, there is no requirement for you to put on any updates for Visual Studio or the .Net Framework after installing SQL Server 2008 RTM. If you never use Visual Studio 2008 on the computer where you are installing SQL Server, then you do not have to worry about any updates for Visual Studio. SQL Server 2008 comes with everything you need.
2) If you install SQL Server 2008, don't have Visual Studio 2008 installed, but now want to install Visual Studio 2008, you must install VS 2008 SP1 after installing Visual Studio 2008 RTM. The Visual Studio 2008 RTM setup will proceed but you may encounter problems with Visual Studio. SQL Server 2008 RTM and Visual Studio 2008 RTM is not a supported configuration if you have chosen features that require VS 2008 SP1 bits (BIDS, Integration Services, or Management Tools).
3) The binaries we need from VS 2008 SP1 are not related to the .Net Framework 3.5 SP1 update. SQL Server 2008 does require the .Net Framework 3.5 SP1 update but for different reasons. SQL Server 2008 setup will install the released version of .Net Framework 3.5 SP1 if it detects it is not already installed. This is one of the first things SQL Server 2008 setup does when executed. Even if you have the .Net Framework 3.5 SP1 Beta, SQL Server 2008 will update it to the RTM version of .Net Framework 3.5 SP1. The .Net Framework 3.5 SP1 is available for separate download by customers here (in fact VS 2008 SP1 will as part of its installation process install the .Net Framework 3.5 SP1). SQL Server 2008 has the exact same version of the .Net Framework 3.5 SP1 installation as is on the download center so you will not need to apply any updates for it.
One important detail about the .net framework dependency. Business Intelligence Development Studio (BIDS) has the dependency for updates at the .net 3.5 sp1 level. All other SQL Server components depend on .net 2.0 sp2. But .net 2.0 sp2 is not available as a general download and rather than waiting to see if you pick BIDS as a feature, we decided to make the .net 3.5 sp1 framework update a pre-installation step. The one exception to this rule is on Itanium (IA64) platforms running Windows Server 2003. This is because .net 3.5 is not supported on IA64 platforms on operating system versions less than Windows Server 2008. So...since we still need .net 2.0 sp2 on these platforms and you cannot run BIDS on IA64, we include on the media source for SQL Server 2008 a specific package to install .net 2.0 sp2 on IA64 for Windows Server 2003.
4) Visual Studio Express SKUs cannot be updated with Visual Studio 2008 SP1. You must run the Express full installation which has been updated to the SP1 level. So if you have for example Visual C# 2008 Express, you must go to http://www.microsoft.com/express/download/#webInstall to install the updated full download. You do not have to uninstall your RTM Express SKU. You must follow this procedure for any Express SKU you have installed.
To summarize the situation:
1) If you don't have Visual Studio 2008 installed and have never installed a SQL Server 2008 CTP build, SQL Server 2008 RTM comes with everything you need and you should not encounter this problem.
2) If have Visual Studio 2008 installed, you must install VS 2008 SP1 before you install SQL Server 2008 RTM (or don't pick features that require it).
3) If you do not have VS 2008 installed but are encountering this problem, do not attempt to install VS 2008 SP1. Rather, uninstall Visual Studio 2008 Shell (integrated mode) and Visual Studio Tools for Applications 2.0. You should then be allowed to proceed with the installation.
4) SQL Server 2008 RTM comes with the .Net Framework 3.5 SP1 final release. This requirement is independent of the binaries we need from VS 2008 SP1. There is no need for you to run any update to the .Net Framework after installing SQL Server 2008.
5) If you install Visual Studio 2008 RTM after installing SQL Server 2008 RTM, you must install VS 2008 SP1 to be supported if you are using the features in SQL Server that depend on VS 2008 SP1 (BIDS, Integration Services, or Management Tools).