C# 如何使用C将TFS生成触发器设置为Scheduled#

C# 如何使用C将TFS生成触发器设置为Scheduled#,c#,tfs,build,C#,Tfs,Build,使用Microsoft.TeamFoundation.Build.Client,我能够创建IBuildServer的实例,并从中创建新的构建定义 我正在努力解决的问题是如何为计划的构建设置触发器和设置时间 如果检索设置为ScheduleTrigger的现有生成,我所能看到的就是名为TriggerType的生成属性,该属性设置为ScheduleForced。其他信息似乎都不可用,即时间、天数、构建(如果没有任何更改) 有没有想过这些属性设置在哪里?可能在生成控制器上?找不到任何TFS API来触发

使用Microsoft.TeamFoundation.Build.Client,我能够创建IBuildServer的实例,并从中创建新的构建定义

我正在努力解决的问题是如何为计划的构建设置触发器和设置时间

如果检索设置为ScheduleTrigger的现有生成,我所能看到的就是名为TriggerType的生成属性,该属性设置为ScheduleForced。其他信息似乎都不可用,即时间、天数、构建(如果没有任何更改)


有没有想过这些属性设置在哪里?可能在生成控制器上?

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

我们可以使用命令来运行Team Foundation Bu建d的配置生成定义,命令如下:

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

然后,根据项目要求定期运行build命令。

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

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();
IBuildServer IBS=tpc.GetService();
IBuildDefinition ibdef=IBS.CreateBuildDefinition(项目名称);
ibdef.Name=“ApiDef”;
ibdef.TriggerType=定义TriggerType.ScheduleForced;
isSchedule iss=ibdef.AddSchedule();
iss.DaysToBuild=ScheduleDays.Friday;
iss.StartTime=10800;
iss.TimeZone=TimeZoneInfo.Utc;
保存();

谢谢-不知道我怎么会错过这个。