TFS 2015 和 VS 2013 构建定义

TFS 2015 and VS 2013 build definitions

我使用 VS 2013 因为 Biztalk 2013 的发展。目前,我们将 TFS 2015 与 TFS 2013 的构建代理一起用于自动构建。 我们需要将所有内容迁移到 TFS 2015,并且我们希望将构建定义的 xaml 方法迁移到 vNext。 问题是,由于 biztalk 版本,我们需要继续使用 VS2013,并且在 Builds 下的 Team Explorer 视图中我看不到创建为 vNext 的构建定义。 我搜索了 plugins/extensions 和更新,甚至搜索了一些文档,但我找不到与此主题相关的任何内容。

TFS 2015+ 中的构建系统完全基于网络。即使是 VS2015+ 也会将您跳转到网络以对构建进行任何操作。

所以答案是,"Get used to using the web UI."

如果您有适当的构建定义并且连接到正确的 tfs 工作区项目,那么您应该会在 vs 面板上看到列表定义,您唯一不能做的就是编辑构建定义.正如@DanielMann 所说,从那时起一切都是基于网络的,您可以做的是排队新构建并查看列表。你不需要任何插件

正如 Daniel 所说,vNext 构建系统完全基于网络,Visual Studio 2013 不显示非 XAML 构建定义。

因此,您可以使用以下解决方法来查看现有构建定义的列表(但是您只能通过 vNext 构建定义的 Web 门户编辑构建定义):

  1. 使用网络 UI:http://server:8080/tfs/Collection/Project/_build
  2. 安装 Visual Studio 2015+ 或至少安装 Team Explorer 2017 独立
  3. 获取带有 REST 的构建定义列表 API:获取列表 构建定义
  4. 创建控制台应用程序并使用 BuildHttpClient 发出请求,请参考以下示例:

using System;
using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.VisualStudio.Services.Client;

namespace GetBuildDefinition
{
    class Program
    {
        static void Main(string[] args)
        {
            var tfsUrl = "http://server:8080/tfs/Collection";
            var buildClient = new BuildHttpClient(new Uri(tfsUrl), new VssAadCredential());
            var definitions = buildClient.GetDefinitionsAsync(project: "ProjectNameHere");

            foreach (var definition in definitions.Result)  
            {
                Console.WriteLine(String.Format("{0} - {1}", definition.Id, definition.Name));
            }
        }
    }
}

VS 2013 及更低版本不显示 vNext 构建和构建定义,您需要 VS 2015 及更高版本。作为一个选项,如果您想关注构建状态,您可以尝试独立于 Visual Studio 并支持 vNext 构建的 CatLight 构建通知工具(检查下面的第一个 link)。否则,Web 版本非常好用和处理。

如果您对 TFS 构建有任何其他疑问,请告诉我们。

另外,下面的 Microsoft links 可能会有帮助。

  1. vNext builds are not visible in VS Team Explorer pane

  2. VS Compatibility with TFS versions