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