TFS 客户端库没有 return 特定值

TFS client libraries don't return specific value

为什么通过 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 属性?

谢谢

TFS 客户端库 (SOAP API) 使用 Legacy Client Object Model while WebApi libraries calls the New Rest API 实现功能。

客户端库主要用于提供与 XAML 版本的向后兼容性。它们不能很好地与新的 vNext 构建系统一起工作,因为它们是在他们的时代之前编写的。

TFS 甚至为 XAML 构建和 vNext 构建使用两种不同的 构建保留策略 。您无法为 XAML 构建设置 "daysToKeep"。详情请参考本题

所以 REST API 是未来要遵循的方式,您需要使用它来获得问题中的以上值。