- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在通过 TFS API 从 Visual Studio Online 项目中检索构建信息时遇到问题。我似乎可以连接到该项目,并找到预期的团队项目集合和团队项目,但尽管该项目有两个构建定义和多个构建,但 TFS API 在查询构建时总是向我返回零长度数组定义或构建。该项目是一个 Git 项目。我的生产代码类似于我为尝试调试问题而编写的测试代码:
var tfsUri = new Uri("https://[my project].visualstudio.com");
var tcs = new TfsConfigurationServer(tfsUri);
var teamProjCollections = tcs
.CatalogNode
.QueryChildren(
new[] { CatalogResourceTypes.ProjectCollection },
false,
CatalogQueryOptions.None)
.Select(collectionNode => new Guid(collectionNode.Resource.Properties["InstanceId"]))
.Select(collectionId => tcs.GetTeamProjectCollection(collectionId));
var tpc = teamProjCollections
.Single(x => x.Name == @"[my project].visualstudio.com\DefaultCollection");
var newTeamProjects = tpc
.CatalogNode
.QueryChildren(
new[] { CatalogResourceTypes.TeamProject },
false,
CatalogQueryOptions.None);
var tp = newTeamProjects
.Single(x => x.Resource.DisplayName == "[team project name]");
var buildServer = tpc.GetService<IBuildServer>();
var buildDefinitions = buildServer.QueryBuildDefinitions(tp.Resource.DisplayName);
buildDefinitions
始终是一个空数组。生成定义绝对在那里 - 我可以使用 Visual Studio 连接到项目,并将它们显示在团队资源管理器的“生成”选项卡中。这段代码过去对我有用,但我连接的始终是 TFVC 项目,而不是 Git 项目。有趣的是,如果我使用团队项目集合中的 VersionControlServer
,如下所示:
var vcs = tpc.GetService<VersionControlServer>();
var teamProjects = vcs.GetAllTeamProjects(true);
..teamProjects
始终是零长度数组。
另外,如果我尝试通过指定一个非常通用的构建细节规范来获取团队项目集合的所有构建,我将不会返回任何构建。
一些附加信息:我正在使用 VS Enterprise 2015 RC。我是 VSO 项目的管理员,创建了团队项目集合、团队项目和构建定义。我推送了一些代码,并运行了一些构建。通过 API 连接时,我以自己的身份登录。我的凭据似乎是正确的。
所以,在尝试解决这个问题时,我有一些问题。我是否需要不同的方法来访问 Git 存储库?也许只有通过新的 TFS 2015 REST API 才有可能?也许我需要让我的构建在 VSO 项目中对我自己“可见”?
最佳答案
您可以利用 BuildHttpClient 发出与使用 2.0 REST API 类似的请求。
这sample在 GitHub 上是一个很好的资源,如果您更愿意轮询单个项目,它应该看起来更像这样:
using System;
using System.Collections.Generic;
using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.VisualStudio.Services.Client;
static void GetBuildStatus()
{
var tfsUrl = "http://<tfs url>:<port>/tfs/<collectionname>";
var buildClient = new BuildHttpClient(new Uri(tfsUrl), new VssAadCredential());
var definitions = buildClient.GetDefinitionsAsync(project: "<projectmame>");
var builds = buildClient.GetBuildsAsync("<projectname>";
foreach (var build in builds.Result)
{
Console.WriteLine(String.Format("{0} - {1} - {2} - {3}", build.Definition.Name, build.Id.ToString(), build.Status.ToString(), build.StartTime.ToString()));
}
}
关于c# - 通过 TFS API 从 Visual Studio Online 获取构建定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31533664/
任务是编写代码,将敏感度标签应用于 SharePoint Online 文档库中的文档,而无需下载文件。 到目前为止,我已经探索了以下 API: SharePoint REST API v1 :可用于
期望的行为 将托管在 SharePoint Online 上的 Excel 文档嵌入到 HTML 页面中。 实际行为 嵌入加载,但是没有水平滚动条。 获取视口(viewport)右侧数据的唯一方法是单
我想在数据中心选择一个事件分区。通常我会使用以下语句: INVANTIVE> use 1552839 2> Exclamation itgendhb077: Error in Invantive Da
我正在使用 Azure Functions,特别是 PowerShell 脚本函数。我想知道如何使用连接到 SharePoint Online 的脚本。 要针对 SharePoint Online 运
我正在尝试使用 API 按姓名查询客户。具有非 ASCII 字符的名称(例如 민준 或 Włodarski)会导致查询失败。这是一个示例查询: SELECT * FROM Customer WHERE
我已经将一个SharePoint列表从2019年迁移到365年。该列表具有NINTEX形式,而该NINTEX形式具有较少的JavaScript文件。在SP Online中,NWF$().SPServi
我正在尝试在内存中生成 PDF 以将其发送到 WS。此 PDF 应在内存 (Stream) 和 Microsoft CRM“云”中的插件代码中创建。这可能吗? 在插件中(已经编码和部署)我有这行,第
当我使用 Invantive Data Hub 从多个 Exact Online 公司下载数据时,我得到了重复的行,而我希望每个公司只有一行。 我使用以下查询: select gla.code ,
我们刚刚上线 https://ecotaksen.be 。 Exact 上的查询和更新运行良好,但安装生产许可证后出现错误 itgenobr001:找不到客户端。。 我的数据容器规范是: 使用具有相
我在 Dynamics CRM Online 2015 中创建了一个插件,用于在 SharePoint Online 文档库中创建文件夹。该插件工作正常。但是,我想在 CRM 中的帐户名称更改时重命名
我正在关注 this blog在 SPFX 部分实现 fluentUI,但在执行“Gulp Build”时出现以下错误: Error - [tsc] node_modules/@fluentui/re
我能够在桌面 .Net 项目中通过 MSAL 检索和使用访问 token 。我可以成功检索 token ,并且它们在我的 Graph 调用中有效。 但是,尝试将访问 token 与 SharePoin
为了遵守法规,我尝试从我的一些部门下载采购发票文件(PDF 文件),将它们保存在磁盘上以供存档。 我使用 Invantive 查询工具来执行此操作。我想知道使用哪个表以及如何仅针对采购发票文档导出这些
我正在开发一个基于 Spring-MVC 的 Web 应用程序,该应用程序使用 Cometd 进行聊天。为了实时管理哪些用户在线,我们在用户在线时发送通知。因此,当窗口关闭时,不会出现通知,并且 30
我在 Visual Studio Online 上使用 GIT 进行源代码管理。我想将一个项目从我的个人 VSO 账户转移到我的企业 VSO 账户。例如。从 account1.visualstudio
当我关闭 Word Online 中的对话框时,我在控制台中收到以下消息: Unknown conversation Id. 我不是得到一个可以处理的代码,而是得到...... (macOS/Chro
短版:如何加载 PowerApps 中托管元数据字段的所有可用选项? 长版: 我有一个正常工作的 PowerApps 应用程序,但用户希望能够在离线时添加数据,并在再次在线时同步回来。官方 Power
我是 QuickBooks 的新手,我所有的搜索都导致了相互矛盾的答案。我真的需要知道这一点才能继续前进。 我们有一个本地应用程序(如果重要的话,旧版 MFC 应用程序)。我们的一些客户使用 Quic
这是我的代码,我尝试使用 countOnline 函数计算我们有多少在线用户。 我遇到错误“无法读取未定义的‘在线’属性”; function countOnline(usersObj) { le
如果我们有一个巨大的事实表并想要添加一个新维度,我们可以这样做: BEGIN TRANSACTION ALTER TABLE [GiantFactTable] ADD NewDimValueId IN
我是一名优秀的程序员,十分优秀!