Welcome to Manicprogrammer Sign in | Join | Help

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.

Published Monday, December 17, 2007 9:11 PM by michaelruminer
Filed under

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

Tuesday, December 18, 2007 5:19 AM by Gabriel Lozano-Moran

# re: TFS Admin Tool on CodePlex

Thank you for adding WSS3.0 support :-) I will give it a try

Tuesday, December 18, 2007 6:24 AM by michaelruminer

# re: TFS Admin Tool on CodePlex

Let me know if you have any other issues.

Thursday, December 20, 2007 7:35 AM by Team System News

# VSTS Links - 12/20/2007

Dajung on Determining Code Complexity. Michael Ruminer on TFS Admin Tool on Codeplex. Tim Hibbard on...

Thursday, December 20, 2007 9:11 AM by Gabriel Lozano-Moran

# re: TFS Admin Tool on CodePlex

When you try to run TFSAdmin against a machine where you don't have administrative privileges you get a 401 (Unauthorized) and the following exception is thrown:

See the end of this message for details on invoking

just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************

System.Net.WebException: The request failed with HTTP status 401: Unauthorized.

  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.DDSolutions.SharePoint.SharePointSite.UserGroup.AddUserToRole(String roleName, String userName, String userLoginName, String userEmail, String userNotes) in C:\Temp\TFSAdmin\Microsoft.DDSolutions.SharePoint\Web References\SharePointSite\Reference.cs:line 1139

  at Microsoft.DDSolutions.SharePoint.SPServerProxy.AddUser(String userName, String siteName, String role, String displayName, String email, String description) in C:\Temp\TFSAdmin\Microsoft.DDSolutions.SharePoint\SharePoint.cs:line 382

  at Microsoft.DDSolutions.TfsAdmin.Controller.AddSharePointUserToRole(String userName, String role, String siteName) in C:\Temp\TFSAdmin\src\Controller.cs:line 295

  at Microsoft.DDSolutions.TfsAdmin.MainForm.toolStripBtnSave_Click(Object sender, EventArgs e) in C:\Temp\TFSAdmin\src\MainForm.cs:line 920

  at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)

  at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)

  at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)

  at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)

  at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)

  at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)

  at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)

  at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

  at System.Windows.Forms.Control.WndProc(Message& m)

  at System.Windows.Forms.ScrollableControl.WndProc(Message& m)

  at System.Windows.Forms.ToolStrip.WndProc(Message& m)

  at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

  at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

  at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************

mscorlib

   Assembly Version: 2.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

----------------------------------------

TFSAdminTool

   Assembly Version: 1.0.0.0

   Win32 Version: 1.0.0.0

   CodeBase: file:///C:/Temp/TFSAdmin/src/bin/Debug/TFSAdminTool.exe

----------------------------------------

System.Windows.Forms

   Assembly Version: 2.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System

   Assembly Version: 2.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

System.Drawing

   Assembly Version: 2.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

Microsoft.DDSolutions.UI

   Assembly Version: 1.0.0.0

   Win32 Version: 1.0.0.0

   CodeBase: file:///C:/Temp/TFSAdmin/src/bin/Debug/Microsoft.DDSolutions.UI.DLL

----------------------------------------

System.Data

   Assembly Version: 2.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll

----------------------------------------

System.Xml

   Assembly Version: 2.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------

System.Configuration

   Assembly Version: 2.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

----------------------------------------

Microsoft.TeamFoundation.Client

   Assembly Version: 9.0.0.0

   Win32 Version: 9.0.21022.8

   CodeBase: file:///C:/WINDOWS/assembly/GAC_32/Microsoft.TeamFoundation.Client/9.0.0.0__b03f5f7f11d50a3a/Microsoft.TeamFoundation.Client.dll

----------------------------------------

Microsoft.DDSolutions.Tfs

   Assembly Version: 1.0.0.0

   Win32 Version: 1.0.0.0

   CodeBase: file:///C:/Temp/TFSAdmin/src/bin/Debug/Microsoft.DDSolutions.Tfs.DLL

----------------------------------------

Microsoft.TeamFoundation

   Assembly Version: 9.0.0.0

   Win32 Version: 9.0.21022.8

   CodeBase: file:///C:/WINDOWS/assembly/GAC_32/Microsoft.TeamFoundation/9.0.0.0__b03f5f7f11d50a3a/Microsoft.TeamFoundation.dll

----------------------------------------

Microsoft.TeamFoundation.Common

   Assembly Version: 9.0.0.0

   Win32 Version: 9.0.21022.8

   CodeBase: file:///C:/WINDOWS/assembly/GAC_32/Microsoft.TeamFoundation.Common/9.0.0.0__b03f5f7f11d50a3a/Microsoft.TeamFoundation.Common.dll

----------------------------------------

System.Web.Services

   Assembly Version: 2.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Web.Services/2.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll

----------------------------------------

ytbbecjx

   Assembly Version: 9.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

System.Web

   Assembly Version: 2.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Web/2.0.0.0__b03f5f7f11d50a3a/System.Web.dll

----------------------------------------

Microsoft.TeamFoundation.Common.Library

   Assembly Version: 9.0.0.0

   Win32 Version: 9.0.21022.8

   CodeBase: file:///C:/WINDOWS/assembly/GAC_32/Microsoft.TeamFoundation.Common.Library/9.0.0.0__b03f5f7f11d50a3a/Microsoft.TeamFoundation.Common.Library.dll

----------------------------------------

xzzmhckm

   Assembly Version: 2.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

etkhj0cv

   Assembly Version: 9.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

211a1yru

   Assembly Version: 9.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

Microsoft.DDSolutions.SharePoint

   Assembly Version: 1.0.0.0

   Win32 Version: 1.0.0.0

   CodeBase: file:///C:/Temp/TFSAdmin/src/bin/Debug/Microsoft.DDSolutions.SharePoint.DLL

----------------------------------------

Microsoft.DDSolutions.SqlReportServer

   Assembly Version: 1.0.0.0

   Win32 Version: 1.0.0.0

   CodeBase: file:///C:/Temp/TFSAdmin/src/bin/Debug/Microsoft.DDSolutions.SqlReportServer.DLL

----------------------------------------

oxutp4jj

   Assembly Version: 9.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

azrwvmwl

   Assembly Version: 1.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

vqzgy2-_

   Assembly Version: 1.0.0.0

   Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

************** JIT Debugging **************

To enable just-in-time (JIT) debugging, the .config file for this

application or computer (machine.config) must have the

jitDebugging value set in the system.windows.forms section.

The application must also be compiled with debugging

enabled.

For example:

<configuration>

   <system.windows.forms jitDebugging="true" />

</configuration>

When JIT debugging is enabled, any unhandled exception

will be sent to the JIT debugger registered on the computer

rather than be handled by this dialog box.


Enter the text you see in the image:

Leave a Comment

(required) 
required 
(required)