| |
| Types inheriting from UITypeEditor |

Recently I was asked to extend a Build Template for Team Build. There were a few fancy things which were required for this template, including picking files and folders in Source Control, selecting Work Items etc. I looked around the documentation on msdn.microsoft.com, but the information on the available editors is scarce and incomplete (or I didn't look good enough).

I decided to fire up NDepend to find the types I was interested in and from there I used good old .NET Reflector to look for the return type of each of them. Using this I found a few gems. All nicely marked Internal and thus hidden from view. I'm guessing this means these Editors come without support and may change without warning, but if that doesn't deter you, then read on for the complete list

First, add your Argument to the Build workflow like this:

Then open the Metadata section:

Finally, set the Editor. Use the "Name, Assembly" format, you don't need to provide a strong name key or version. That should ensure that when you need to upgrade, the Build Agent will still be able to load your Editor. For example, to get a BuildAgentSelectionEditor set the Editor value to: "Microsoft.TeamFoundation.Build.Controls.BuildAgentSelectionEditor,  Microsoft.TeamFoundation.Build.Controls".

I'm still hoping to find an editor that allows me to select a Work Item Query, a specific Work Item, and a few others, but it looks like these use a different form of integration into Visual Studio. When I've found them I'll update this post.

Ohh and don't forget, you can use any of the existing UITypeEditors which come with Windows Forms by default!

|


internal
 
class
 
BuildAgentSelectionEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.BuildAgentSelectionEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns string

|


internal
 
sealed
 
class
 
BuildNumberFormatEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.BuildNumberFormatEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns string

|


internal
 
class
 
BuildProjectListEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.BuildProjectListEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls, Version=10.0.0.0 |

Returns StringList

|


internal
 
class
 
BuildSettingsEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.BuildSettingsEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns BuildSettings

|


internal
 
class
 
EnumPropertyEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.EnumPropertyEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns EnumValue

|


internal
 
class
 
PlatformConfigurationListEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.PlatformConfigurationListEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns PlatformConfigurationList

|


internal
 
class
 
ServerFileBrowserEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.ServerFileBrowserEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns String

|


internal
 
class
 
ServerFolderBrowserEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.ServerFolderBrowserEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

This editor shows a folder browser for picking a folder in SourceControl.
Returns string

|


internal
 
class
 
TagsEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.TagsEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns List

|


internal
 
class
 
TestMetadataFileBrowserEditor
 : ServerFileBrowserEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.TestMetadataFileBrowserEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns string

|


internal
 
class
 
TestSettingsFileBrowserEditor
 : ServerFileBrowserEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.TestSettingsFileBrowserEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Return string

|


internal
 
class
 
TestSpecEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.TestSpecEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns TestSpec

|


internal
 
class
 
TestSpecListEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.TestSpecListEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns TestSpecList

|


internal
 
class
 
WorkItemTypeSelectionEditor
 : UITypeEditor

|

| Name: | Microsoft.TeamFoundation.Build.Controls.WorkItemTypeSelectionEditor |
| Assembly: | Microsoft.TeamFoundation.Build.Controls |

Returns string