TFS Admin Tool on CodePlex
I have checked in changeset 29249 on CodePlex (tfs01.codeplex.com) related to the TFS Administration Tool. This changeset and changeset 28959 will likely be pushed down in some form from the branch I was working in to the main line and rolled into a new release of the tool. If you don't wish to wait for the official release you can grab the code from the branch mruminer_working_for_2008 and compile it for yourself. It adds support for TFS 2008 in the form of supporting WSS 3.0/MOSS. This was the only issue I found in supporting TFS 2008- not to say there could not be others. I have copied and pasted below the updates I made. If you know of other issues in using the tool with TFS 2008 speak up so we can get them resolved for a new release.
Changes to the schema of the RoleConfig.xml file:
<!-- a new attribute of wss3role on the System element is the role name used when
communicating to a WSS 3.0 site. The values that need to be used changed from
WSS 2.0 and WSS 3.0. If a WSS 2.0 site is in use it uses the role attribute value
if it is a WSS 3.0 site it uses the wss3role attribute. The comparable default values
are as follows in the format 2.0 -> 3.0:
Administrator -> Full Control
Contributor -> Contribute
Web Designer -> Design
Reader -> Read
-->
Changes to the RoleConfig class
Support for WSS 3.0 was added by changing the signature of ctor of this class to expect a bool inidicating whether the team site being connected to is a WSS 3.0 site.
Changed the assignment of the XmlNode roleAttrib to be determined by the flag indicating if this is a WSS 3.0 team project site.
Changes to MainForm class
Added the call to the AppController.PrepRoleConfig to parse the RoleConfig.xml file at this point. Prior to this it was in the AppController as part of the OnTfsLogin method. This was too early in the process as a team project had not been selected and thus the team project SharePoint site could not be connected to and evaluated to determine if WSS 3.0.
Changes to Controller class
Removed the creation of the RoleConfig instance from the OnTFSLogin method and moved the process to the method PrepRoleConfig so that the MainForm instance can call for the parsing of the RoleConfig.xml file when the team project is selected thus being able to evaluate if the team project SharePoint site is a WSS 3.0 site.
Created the PrepRoleConfig method that will parse the RoleConfig.xml file via the RoleConfig class. It uses the team project name to determine the team project SharePoint site and thus determine if the site if a WSS 3.0 site for the proper parsing of the RoleConfig.xml file.
Changes to SPServerProxy class
Created a private string field _wssVersionNumber with a default value of “6.x” to represent WSS 2.0 and created a public getter property for the field.
Changed the SetUrl method from private to public so that it could be called from the Controller class and added a call to a new method of DetermineVersionNumber so that the version number will be determined when the team site URL is set.
The DetermineVersionNumber method uses the response that was created when setting the URL and testing the URL to see if a server responded at that URL. It looks for the MicrosoftSharePointTeamServices property in the response header and sets the _wssVersionNumber to this value. If this header property does not exist it defaults to “6.x” (even though it seems some instances of WSS 2.0 may return ’11.x’ and others ‘6.x’ depending on the sku and service pack.
An additional method isWSS3() was added that parses the _wssVersionNumber field and if the string value begins with ‘12’ returns true.
Changes to ReportServerUnitTests and SharePointUnitTests
The ReportServerUnitTests and SharePointUnitTests expected that the SSRS and WSS site existed on the application tier. This was the default supported condition for TFS 2005 but is not accurate for TFS 2008 where SSRS and WSS may exist on servers other than the application tier. Changes were made to the TestFixtureSetup to connect to the TFS instance just as in the previous version but then to utilize the ReportingServiceProxy and SPServerProxy for the proper connections to the respective servers.