【问题标题】:How to set a TFS Build trigger to Scheduled using C#如何使用 C# 将 TFS 构建触发器设置为计划
【发布时间】:2016-05-30 23:48:36
【问题描述】:

使用 Microsoft.TeamFoundation.Build.Client,我可以创建 IBuildServer 的一个实例,并从那里创建一个新的构建定义。

我正在苦苦挣扎的是如何为要安排的构建设置触发器并设置时间。

如果我检索设置为 Scheduled Trigger 的现有构建,我只能看到一个名为 TriggerType 的构建属性,它设置为 ScheduleForced。似乎没有其他信息可用,即时间、天数、如果没有任何更改标志则构建。

对这些属性的设置有什么想法吗?也许在构建控制器上?

【问题讨论】:

    标签: c# tfs build


    【解决方案1】:

    您可以使用以下属性来设置构建计划:

    IBuildServer IBS = tpc.GetService<IBuildServer>();
    IBuildDefinition ibdef = IBS.CreateBuildDefinition(projectname);
    ibdef.Name = "ApiDef";
    ibdef.TriggerType = DefinitionTriggerType.ScheduleForced;
    ISchedule iss = ibdef.AddSchedule();
    iss.DaysToBuild = ScheduleDays.Friday;
    iss.StartTime = 10800;
    iss.TimeZone = TimeZoneInfo.Utc;
    ibdef.Save();
    

    【讨论】:

    • 谢谢 - 不知道我是怎么错过的。
    【解决方案2】:

    找不到任何 TFS API 来触发计划构建。除了 API,在使用 API 创建构建定义后,您可以创建批处理文件和任务计划来调度构建。

    由于我们可以使用TFSBuild start 命令为 Team Foundation Build 运行已配置的构建定义,因此命令如下:

    TFSBuild start /collection:teamProjectCollectionUrl /builddefinition:definitionSpec
    

    所以我们使用这个命令来创建一个批处理文件,例如batchbuild.bat,文件内容如下:

    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\TFSBuild" start /collection:http://tfsserver:8080/tfs/DefaultCollection /builddefinition:teamproject\builddefinition
    

    然后schedule a task 用于根据您的项目要求定期运行构建命令。

    【讨论】:

      猜你喜欢
      • 2022-10-25
      • 2013-08-07
      • 2015-04-24
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多