【发布时间】:2015-07-02 12:03:24
【问题描述】:
[编辑]
您可以通过IServiceProvider 获取当前的构建定义。请参阅此answer。
[/编辑]
我正在尝试为我们的 TFS Xaml 构建工作流之一添加自定义编辑器。 我从关注 Ewald Hofman 的 this excelent tutorial 开始。 一切都按预期工作,当我单击工作流参数的 [...] 按钮时,将显示凭据对话框。
我想做的事: 我想显示 TFS 团队项目中可用的测试套件的可选列表/树。就像在默认实验室工作流程中一样:
显然,要使其工作,我必须能够通过其 .Net-API 与 TFS 通信(是否可以通过 SOAP/REST 进行通信?)。
但是当我开始修改示例以适应我的场景时,我天真地尝试使用IServiceProvider 来获取IBuildService 实例。
public override object EditValue(ITypeDescriptorContext context, ServiceProvider provider, object value)
{
if (provider != null)
{
IWindowsFormsEditorService editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
IBuildServer bs = (IBuildServer)provider.GetService(typeof(IBuildServer));
...
这个方法不行,这个语句后bs为null。
然后我尝试像这样连接到 TestManagement:
var pr = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfs:8080/tfs/DefaultCollection/ProjectName"));
var TcmService = pr.GetService<ITestManagementService>();
var t = TcmService.GetTeamProject("ProjectName");
但是当我单击工作流参数的编辑 [...] 按钮时显示 HTTP 404 错误,这失败了。 url 正确,如果我在浏览器中打开页面,就会显示 Team Webaccess 页面。
TL;DR:
我希望能够在自定义 worfklow 参数编辑器中显示当前 tfs 的测试套件列表,但我无法连接到 TFS。
其他方法: This 站点(和其他一些站点)建议使用内置编辑器。是否可以使用实验室工作流程参数的内置编辑器窗口(第一个屏幕截图中的那个)?
提前致谢。
【问题讨论】:
标签: tfs build-process tfsbuild