Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TFS生成服务器代理状态的查询和操作_Tfs_Msbuild_Tfsbuild - Fatal编程技术网

TFS生成服务器代理状态的查询和操作

TFS生成服务器代理状态的查询和操作,tfs,msbuild,tfsbuild,Tfs,Msbuild,Tfsbuild,我正在尝试使用TFS构建扩展来操纵构建代理的状态。QueryBuildAgentStatus和SetBuildAgentStatus看起来相同,查询活动没有结果参数。 如何查询生成代理状态并对其进行更改 -谢谢假设您使用的是XAML Build,我尝试在Tfs数据库的[Tfs\u DefaultCollection].[dbo].[tbl\u BuildAgent]中监视生成代理的状态 如果生成代理已准备就绪,则可以在tbl中看到状态和已启用,BuildAgent为“1”和“1”。如果禁用生成代

我正在尝试使用TFS构建扩展来操纵构建代理的状态。QueryBuildAgentStatus和SetBuildAgentStatus看起来相同,查询活动没有结果参数。
如何查询生成代理状态并对其进行更改


-谢谢

假设您使用的是XAML Build,我尝试在Tfs数据库的
[Tfs\u DefaultCollection].[dbo].[tbl\u BuildAgent]
中监视生成代理的状态

如果生成代理已准备就绪,则可以在tbl中看到状态已启用,BuildAgent为“1”和“1”。如果禁用生成代理,则可以在tbl\u中看到状态和已启用的生成代理是“1”和“0”。如果在启用生成代理的情况下停止生成服务,则生成代理也将停止,您可以在tbl_中看到状态和启用的,BuildAgent是“2”和“1

因此,一般来说,XAML构建代理具有就绪停止状态(不确定要更改什么)。如果要停止生成代理,只需停止生成服务

这里有一个,你可以看一下:

var tfs = TfsTeamProjectCollectionFactory
 .GetTeamProjectCollection(new Uri("http://localhost:8088/tfs"));

tfs.EnsureAuthenticated();

var buildServer = tfs.GetService<IBuildServer>();

var queryAgents = buildServer.QueryBuildAgents(buildServer.CreateBuildAgentSpec());
queryAgents.Agents
 .Select(x => new
 {
  x.MachineName,
  Controller = x.Controller.Name,
  x.Enabled,
  x.Status,
  x.QueueCount
 })
 .Dump("TFS build agents");

queryAgents.Agents
 .SelectMany(x => ServiceController.GetServices(x.ServiceHost.Name)
  .Where(s => s.ServiceName.StartsWith("TFSBuildServiceHost")))
 .Select(x => new
 {
  x.MachineName,
  x.ServiceName,
  x.Status
 })
 .Dump("Windows Services of build agents");

buildServer
 .QueryQueuedBuilds(buildServer.CreateBuildQueueSpec("*"))
 .QueuedBuilds
 .Select(x => new
 {
  x.TeamProject,
  BuildDefinition = x.BuildDefinition.Name,
  x.QueuePosition,
  x.QueueTime,
  x.Priority,
  x.CustomGetVersion,
  x.RequestedFor,
  x.Reason,
  x.Status
 })
 .OrderBy(x => x.QueuePosition)
 .Dump("Queued builds");
var tfs=tfstreamprojectcollectionfactory
.GetTeamProjectCollection(新Uri(“http://localhost:8088/tfs"));
tfs.确保重新验证();
var buildServer=tfs.GetService();
var queryAgents=buildServer.QueryBuildAgents(buildServer.CreateBuildAgentSpec());
查询代理
.选择(x=>new
{
x、 机械名称,
Controller=x.Controller.Name,
x、 启用,
x、 地位,
x、 队列计数
})
.Dump(“TFS构建代理”);
查询代理
.SelectMany(x=>ServiceController.GetServices(x.ServiceHost.Name)
.Where(s=>s.ServiceName.StartsWith(“TFSBuildServiceHost”))
.选择(x=>new
{
x、 机械名称,
x、 ServiceName,
x、 地位
})
.Dump(“构建代理的Windows服务”);
构建服务器
.QueryQueuedBuilds(buildServer.CreateBuildQueueSpec(“*”))
.QueuedBuilds
.选择(x=>new
{
x、 团队项目,
BuildDefinition=x.BuildDefinition.Name,
x、 队列位置,
x、 排队时间,
x、 优先权,
x、 自定义版本,
x、 请求,
x、 原因,,
x、 地位
})
.OrderBy(x=>x.QueuePosition)
.Dump(“排队生成”);

您使用的是哪个版本的TFS?您的意思是在使用TfsBuildExtensions吗?