为什么通过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属性?
谢谢
答案 0 :(得分:1)
TFS客户端库(SOAP API)使用Legacy Client Object Model,而WebApi库调用New Rest API来实现这些功能。
客户端库主要用于向后兼容XAML构建。它们无法与新的vNext构建系统一起使用,因为它们是在他们的时间之前编写的。
TFS甚至为XAML构建和vNext构建使用两种不同的构建保留策略。您无法为XAML构建设置“daysToKeep”。详情请参阅此问题中的my answer。
因此,REST API是未来的关注方式,您需要使用它来获得问题中的上述值。