TFS客户端库不会返回特定值

时间:2017-11-19 15:26:47

标签: c# .net rest tfs tfs2015

为什么通过TFS客户端库获取的构建定义的某些属性为空?例如,我想获取某个构建定义的retentionRules和daysToKeep属性,但返回的值为空。当我在浏览器中输入构建定义的URL时,我得到了包含所有预期细节的JSON对象。

public static void BuildDefinitionSample()
{
    VssConnection connection = new VssConnection(new Uri(collectionUri), new VssClientCredentials());

    var buildClient = connection.GetClient<BuildHttpClient>();
    var buildDefinitions = buildClient.GetDefinitionsAsync(project: projectName, name: "MyBuildDefinition").Result;

    var daysToKeep = buildDefinitions.FirstOrDefault().retentionRules.daysToKeep;
}

如何通过TFS客户端库获取某个构建定义的daysToKeep属性?

谢谢

1 个答案:

答案 0 :(得分:1)

TFS客户端库(SOAP API)使用Legacy Client Object Model,而WebApi库调用New Rest API来实现这些功能。

客户端库主要用于向后兼容XAML构建。它们无法与新的vNext构建系统一起使用,因为它们是在他们的时间之前编写的。

TFS甚至为XAML构建和vNext构建使用两种不同的构建保留策略。您无法为XAML构建设置“daysToKeep”。详情请参阅此问题中的my answer

Xaml Build Retention Policies

因此,REST API是未来的关注方式,您需要使用它来获得问题中的上述值。