【问题标题】:TFS client libraries don't return specific valueTFS 客户端库不返回特定值
【发布时间】:2018-05-02 21:02:21
【问题描述】:

为什么通过 TFS 客户端库获得的构建定义的某些属性是空的?例如,我想获取某个构建定义的retentionRules 和dayToKeep 属性,但返回的值为空。当我在浏览器中输入构建定义的 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 属性?

谢谢

【问题讨论】:

  • 所有的构建都使用相同的构建系统吗?有 XAML 构建和现代构建。
  • 其中一些是 XAML 版本。但是有问题的构建定义是现代构建。
  • 我希望您刚刚回答了自己的问题:XAML 构建具有这些属性。现代版本没有。

标签: c# .net rest tfs tfs-2015


【解决方案1】:

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

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

TFS 甚至为 XAML 构建和 vNext 构建使用了两种不同的构建保留策略。您不能为 XAML 构建设置“daysToKeep”。详情请参考本题my answer

因此,REST API 是未来可遵循的方式,您需要使用它来获得高于问题的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 2015-02-19
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    相关资源
    最近更新 更多