如何使用 C# 将 TFS 生成触发器设置为“计划”

本文关键字:设置 计划 触发器 何使用 TFS | 更新日期: 2023-09-27 18:35:11

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

我正在努力解决的是如何为要计划的构建设置触发器并设置时间。

如果我检索设置为"计划触发器"

的现有构建,我只能看到一个名为"触发器类型"的构建属性,该属性设置为"计划强制"。 似乎没有其他信息可用,即时间、天数、构建(如果没有任何更改标志)。

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

如何使用 C# 将 TFS 生成触发器设置为“计划”

可以使用以下属性来设置生成计划:

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();

找不到任何用于触发计划生成的 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

然后,根据项目要求安排一个任务,以定期运行生成命令。