Team Foundation Server 2008 SP1 on SQL Server 2008 SP1
Installing Team Foundation Server 2008 (TFS) along with SQL Server 2008 SP1 is not trivial. Once you’ve managed to fulfill the prerequisites everything will go smoothly. In this post I will guide you through the process of getting TFS 2008 running with SQL Server 2008 SP1.
Downloads
The following links refer to required service packs and recommended documentation. Be sure to download both the Team Foundation Installation Guide for Visual Studio Team System 2008 and the Administration Guide for Microsoft Visual Studio Team System 2008 Team Foundation Server.
- Visual Studio 2008 Team Foundation Server Service Pack 1
- Microsoft Visual Studio 2008 Service Pack 1 (ISO)
- SQL Server 2008 Service Pack 1
- Team Foundation Installation Guide for Visual Studio Team System 2008
- Administration Guide for Microsoft Visual Studio Team System 2008 Team Foundation Server
Introduction
I will demonstrate the installation process for a two-tier architecture. We will setup an instance of SQL Server 2008 SP1 on a separate box serving as the data tier (DT) and TFS 2008 on another one assuming the role of the application tier (AT).
TFS 2008 requires Windows SharePoint Services 2.0/3.0 or Microsoft Office SharePoint Server 2007 for the AT to function properly. If neither is present in your current environment the TFS setup procedure will install it along with all the other components. In case you already have a working WSS or MOSS 2007 instance you will be able to specify its location during setup. In either case there is no pressing requirement to integrate TFS into a production or development farm since it will work perfectly in stand-alone mode.
Another point worth mentioning is that in order to be able to install TFS 2008 on SQL Server 2008 SP1 you will have to slipstream the TFS setup. This procedure is quite easy and described in great detail.
This post is divided into three parts:
- Setting up SQL Server 2008 with SP1
- Installing TFS 2008 with SP1 slipstreamed into the package
- Team Explorer pitfalls
Setting up SQL Server 2008 with SP1
If you already have an SQL Server running feel free to use it for TFS 2008 as well. Make sure SP1 is installed.
I will not guide you through the process of installing SQL Server 2008. Instead I will outline the configuration mandatory for TFS to install successfully.
During setup make sure the following services are installed and configured properly for the instance you want to use for TFS:
- SQL Server Database Services (start mode: Automatic)
- SQL Server Full-Text Daemon
- SQL Server Analysis Services (start mode: Automatic)
- SQL Server Reporting Services (start mode: Automatic), can be installed on the AT as well
- SQL Server Browser (start mode: Automatic)
- SQL Server Agent (start mode: Automatic)
All services are required to be running when commencing the TFS 2008 setup procedure. If any of those services is not setup will fail.
- Once SQL Server 2008 is installed add Service Pack 1. This step is mandatory to avoid further problems.
- Open SQL Server Configuration Manager and make sure all services are running as outlined earlier and configured to start automatically.
- While you’re add it make sure that TCP/IP is enabled for the instance you plan to use with TFS 2008. (see SQL Server Network Configuration > Protocols for <INSTANCE_NAME>)
Preparations for SQL Server 2008 SP1 are complete. Let’s get started with setting up TFS 2008 with SP1
Team Foundation Server 2008 Setup
As mentioned in the introduction you cannot install TFS 2008 on a SQL Server. Service Pack 1 adds this capability which essentially means we have to integrate SP1 into the TFS setup before installing it.
Slipstreaming SP1 into TFS 2008 Setup
Follow these steps to merge SP1 into TFS 2008 setup:
- From the TFS 2008 installation media copy the AT folder to C:\Temp
- Copy TFS90SP1-KB949786-ENU.exe to C:\Temp and extract the archive to folder C:\Temp\tfssp1 invoking the following command:
C:\Temp\TFS90SP1-KB949786-ENU.exe /extract:C:\Temp\tfssp1
- Next we merge SP1 with the RTM version:
msiexec /a C:\Temp\AT\vs_setup.msi /p C:\Temp\tfssp1\TFS90sp1-KB949786.msp TARGETDIR=C:\Temp\ATSP1
That’s all it takes. But we are not finished, yet. Right now, we can install TFS 2008 SP1 to integrate with SQL Server 2008 but not SQL Server 2008 SP1. Luckily this can be remedied quite easily (as documented at KB 969985).
- Locate the file Hcpackage.xml in the slipstreamed folder C:\Temp\atsp1 you created ealier, back it up and open it in you favorite text editor.
- Locate the following string:
\\.\root\Microsoft\SqlServer\ComputerManagement10
- In this WQL entry replace the value 10.00.% with 10.%.
- Change the next WQL entry similarly by replacing the value 10.0.% with 10.%
- Finally, find the string MsiProductVersionCheck and change the value 10.1 to 10.2 for SQL Server 2008.
- Save the file
The last step is necessary to instruct the installer to accept the version numbers from SQL Server 2008 SP1.
Installing TFS 2008 SP1
- Start TFS 2008 setup from within the slipstreamed folder you created earlier.
- When prompted for the SQL Server instance enter the server name or specify the instance name if you did not choose to use a default instance name. The required format to do so is SQLSERVER\MyTFSInstance.
- It is perfectly alright to let TFS install WSS 3.0 for you since there is no technical reason to add the TFS instance to the farm you might have in place already. If you choose to add it to a previously configured WSS/MOSS farm make sure to have the URLs and port numbers for the Central Administration and the target web application at hand. TFS will create a new site collection, thus you might want to configure managed paths for that purpose.
If something goes wrong here make sure you followed the installation manual the steps outlined in this post.
Team Explorer Issues
So far I had one issue with Team Explorer: it refused to create new projects throwing the following exception:
Time: 2009-07-07 11:17:05Z Module: Initializer Event Description: TF30207: Initialization for plugin "Microsoft.ProjectCreationWizard.Reporting" failed Exception Type: Microsoft.TeamFoundation.Client.PcwException Exception Message: TF30224: Failed to retrieve projects from the report server. Please check that the SQL Server Reporting Services Web and Windows services are running and you have sufficient privileges for creating a project. Stack Trace: at Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.CheckForProjectFolder(PrivateData data, String projectName, ProjectCreationContext context) at Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.Initialize(ProjectCreationContext context) at Microsoft.VisualStudio.TeamFoundation.EngineStarter.InitializePlugins(MsfTemplate template, PcwPluginCollection pluginCollection) -- Inner Exception -- Exception Type: System.InvalidOperationException Exception Message: Client found response content type of '', but expected 'text/xml'. The request failed with an empty response. Stack Trace: at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at Microsoft.TeamFoundation.Proxy.Reporting.ReportingService.ListChildren(String Item, Boolean Recursive) at Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.CheckForProjectFolder(PrivateData data, String projectName, ProjectCreationContext context)
As it turned out, we have to apply the Service Pack 1 for Visual Studio Team System 2008 again after installing Team Explorer.
Conclusion
Once all the issues have been solved Team Foundation Server 2008 SP1 runs flawlessly. If you identify any errors in this post or want to report on your experiences feel free to leave a comment.
Additionally, I will try to update this post regularly with issues and solutions I have encountered so far.
Thanks for reading.
