【问题标题】:Develop TFS (2017) plugin from with configuration from TFS UI?使用 TFS UI 的配置开发 TFS (2017) 插件?
【发布时间】:2018-02-12 04:50:38
【问题描述】:

我需要为 TFS 2017 开发一个插件,该插件必须拦截在 TFS 项目中启动的所有构建,收集该信息并将其发送到远程系统进行分析。

就 TFS 文档而言,有可能开发插件: 使用 C# 类库,它使用 Microsoft.TeamFoundation.Framework.Server ISubscriber 接口并将编译后的 dll 放入 Application Tier/Web Services/bin/Plugins 文件夹。 这样,在 TFS 中启动的任何构建都会调用插件的 ProcessEvent,并且插件代码将作为 TFS 服务的一部分运行。

是否可以在 TFS Web UI 中为此插件创建配置,例如,在为 Jenkins 开发插件时,可以选择添加配置页面,该页面将包含以下配置:

  1. 将处理数据的服务的 URL
  2. 将用于连接到服务的凭据

是否可以在visual studio market place 中发布插件,以便 TFS 用户能够从 TFS 扩展页面下载插件?

【问题讨论】:

  • 为什么现有的构建服务挂钩不足以实现此目的?

标签: c# plugins tfs continuous-integration


【解决方案1】:

基本上,没有。

  • 服务器端插件无法在任何地方公开 UI。
  • 市场是用于扩展,而不是服务器端插件。扩展是用 JavaScript 编写的,具有完全独立的 API。

您最好的选择是创建一个在构建完成时触发的service hook,并编写一个收集该数据的服务。

【讨论】:

  • 丹尼尔感谢您的建议!我一直在看带有打字稿的 TFS 的扩展教程(visualstudio.com/en-us/docs/integrate/extensions/get-started/…)我遇到的问题是扩展是每个项目配置的,这不是我的场景,我的目标是创建一个有效的插件对于在 TFS 中使用单点配置创建的任何项目(新的或旧的)。如果使用扩展(或网络挂钩)问题是;是否可以创建这样的扩展,每个 TFS 实例配置一次?
  • @Michael 无法做到这一点。服务挂钩在项目级别,您需要为每个项目设置。扩展在集合级别,它适用于安装扩展的特定集合中的项目。
猜你喜欢
  • 2016-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
相关资源
最近更新 更多