如何通过代码获取 TFS 工作项验证错误消息?

Posted

技术标签:

【中文标题】如何通过代码获取 TFS 工作项验证错误消息?【英文标题】:How to get the TFS workitem validation error message by code? 【发布时间】:2014-04-30 17:39:08 【问题描述】:

我已经知道WorkItem.Validate 方法可以获取此工作项中无效字段的ArrayList (msdn)。

但它们似乎只包含无效字段和名称,但不包含任何错误消息,即为什么它们无效,这对于在不使用内置 TFS 控件的情况下提交工作项的情况很有用。 如何获得类似“新错误1:TF200012:字段'标题'不能为空。”的错误提示?

为了更好的理解,请看图。 我用的是VS2010 SP1中文,错误描述翻译如上。

【问题讨论】:

【参考方案1】:

Visual Studio 只是另一个包装 TFS 错误消息的客户端。您无法捕获 TF* 错误,但您可以获取 FieldStatus 并打印您自己的消息。

var invalidFields = workItem.Validate();
if (invalidFields.Count > 0)

    foreach (Field field in invalidFields)
    
        string errorMessage = string.Empty;
        if (field.Status == FieldStatus.InvalidEmpty)
        
            errorMessage = string.Format("0 1 2: TF20012: field \"3\" cannot be empty."
                , field.WorkItem.State
                , field.WorkItem.Type.Name
                , field.WorkItem.TemporaryId
                , field.Name);
        
        //... more handling here

        Console.WriteLine(errorMessage);
    

else // Validation passed

    workItem.Save();

【讨论】:

【参考方案2】:
field.Status.ToString()

为我工作,这将捕获错误消息。

【讨论】:

我很久没有使用 TFS api,所以无法验证。 ^_^

以上是关于如何通过代码获取 TFS 工作项验证错误消息?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过C#代码找到WIQL TFS Workitem中字段的所有值?

在 TFS 中,如何更正现有变更集上工作项的链接

以编程方式在我的 ASP .net Core Web API 中获取 TFS 工作项详细信息?

如何从 TFS 获取子工作项的激活日期和关闭日期

tfs清除服务器印射

TFS Azure 2017 工作项更改事件处理程序 - 分支关系