Which UIEditors are available for Team Build by default


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=
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


Most Reading