我有以下代码来使用API和TFS2013检索构建历史记录。
var connection = new VssConnection(uri, cred);
var buildServer = connection.GetClient<BuildHttpClient>();
var builds = buildServer.GetBuildsAsync($"{teamProjectName}").Result;
调用buildServer.GetBuildsAsync时出现以下错误
{“将值转换错误\”失败\“键入 'System.Nullable`1 [Microsoft.TeamFoundation.Build.WebApi.BuildStatus]'。 路径'值[0] .status',第1行,第268位。“}
知道这可能意味着什么吗?
答案 0 :(得分:1)
要使用XAML版本,您需要使用旧版本的 REST客户端或最好是SOAP客户端。就像XAML一样 已弃用我们已从最新版本中删除了这些定义 REST apis。请参阅this case。
我已经使用TFS 2015进行了测试(我们现在还没有TFS 2013环境)。如果使用15 Microsoft.TeamFoundationServer.ExtendedClient
版本,则此API无法获得XAML版本。如果使用14个版本的Microsoft.TeamFoundationServer.ExtendedClient
,则此api可以成功获得XAML构建。
如果即使使用14个Microsoft.TeamFoundationServer.ExtendedClient
版本,此api也无法正常工作,请尝试使用下面的旧API检索XAML版本:
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri("http://tfsserver:8080/tfs/teamprojectcollection"));
tfs.EnsureAuthenticated();
IBuildServer buildserver = (IBuildServer)tfs.GetService(typeof(IBuildServer));
IBuildDefinition[] buildDefinitions = buildserver.QueryBuildDefinitions("teamproject");
IBuildDetail[] builds = buildserver.QueryBuilds("teamproject");