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