【问题标题】:How do I reference a "drop as zip" or a drop folder instead of the source when building in TFS?在 TFS 中构建时,如何引用“以 zip 格式放置”或放置文件夹而不是源?
【发布时间】:2015-11-04 18:47:45
【问题描述】:

我习惯于使用 TeamCity,所以我可能应该完全改变我的工作流程,在这种情况下,建议使用新的工作流程来回答。

在 TeamCity 中,我通常将单元测试作为一个构建任务构建和运行(在每次提交时)。运行时间较长的测试每晚安排一次,并以相同的方式运行。到目前为止,我已经设法在 TFS 中复制该过程。但最重要的是,我有一个构建任务来部署/发布一个包。一旦我们准备好,我就会手动启动它。此脚本引用了先前构建中的工件(即 TFS 中的放置文件夹或放置 zip)。

我已阅读 this 关于部署脚本的文章,但我找不到任何关于如何在 TFS 中触发它们的信息。

所以简而言之:在 TFS 中构建时,如何引用“作为 zip 文件放置”或放置文件夹而不是源文件?

【问题讨论】:

    标签: tfs


    【解决方案1】:

    您可以在特定构建上“获取特定构建”或“最新成功构建”,然后您可以参考该构建的放置位置。
    使用 TFS API,获取最新的 API 应该如下所示:

    using (TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfsserver:8080/tfs/DefaultCollection")))
    {
        var buildServer= tpc.GetService<IBuildServer>();
        var buildSpec = buildServer.CreateBuildDetailSpec(teamProjectName, buildDefinition); 
        buildSpec.InformationTypes = null; 
        buildSpec.MinFinishTime = DateTime.Now.AddHours(-lastXHours); 
        buildSpec.MaxBuildsPerDefinition = 1;
        buildSpec.QueryOrder = Microsoft.TeamFoundation.Build.Client.BuildQueryOrder.FinishTimeDescending;
        buildSpec.Status=Microsoft.TeamFoundation.Build.Client.BuildStatus.Succeeded;
        var buildDetails = buildServer.QueryBuilds(buildSpec).Builds; 
        if (buildDetails.Length ==1){var dropLocation= buildDetails[0].DropLocation; }    
        else { Console.WriteLine("No builds found." );}
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      • 2014-09-16
      • 2014-02-02
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      相关资源
      最近更新 更多