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 API BranchObjectCreated事件未激发_Tfs_Tfs Sdk - Fatal编程技术网

TFS API BranchObjectCreated事件未激发

TFS API BranchObjectCreated事件未激发,tfs,tfs-sdk,Tfs,Tfs Sdk,我有一些代码可以在TFS中自动创建构建定义 现在,我希望在创建分支时调用此代码 查看API,我看到Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer中有一个BranchObjectCreatedEvent 因此,我在控制台应用程序中添加了一些代码来处理该事件 private static void MonitorBranchCreated() { try {

我有一些代码可以在TFS中自动创建构建定义

现在,我希望在创建分支时调用此代码

查看API,我看到Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer中有一个BranchObjectCreatedEvent

因此,我在控制台应用程序中添加了一些代码来处理该事件

    private static void MonitorBranchCreated()
    {
        try
        {
            TfsTeamProjectCollection tfs = InitialiseTfs();

            var vcs = tfs.GetService<VersionControlServer>();

            var projects = vcs.GetAllTeamProjects(true);

            foreach (var project in projects)
            {
                project.VersionControlServer.BranchObjectCreated += BranchObjectCreated;
            }

            Console.WriteLine("Subscribed to TFS BranchObjectCreated Event - Awaiting Notification...");
            Console.ReadLine();
        }
        catch (Exception exception)
        {
            DisplayError(exception);
        }
    }

    private static void BranchObjectCreated(object sender, BranchObjectCreatedEventArgs e)
    {
        // Create the Build
    }
private static void MonitorBranchCreated()
{
尝试
{
TfsTeamProjectCollection tfs=InitialiseTfs();
var vcs=tfs.GetService();
var projects=vcs.GetAllTeamProjects(true);
foreach(项目中的var项目)
{
project.VersionControlServer.BranchObjectCreated+=BranchObjectCreated;
}
WriteLine(“订阅TFS BranchObjectCreated事件-等待通知…”);
Console.ReadLine();
}
捕获(异常)
{
显示错误(异常);
}
}
私有静态无效BranchObjectCreated(对象发送方,BranchObjectCreatedEventArgs e)
{
//创建构建
}
问题是,当我在VisualStudio中从源代码管理资源管理器创建分支时,事件从未触发

MSDN文档是有限的,我找不到任何其他使用示例,所以我希望有人能告诉我这是否是正确的方法


如果是这样的话,为什么事件不会被触发?如果没有,是否有其他方法可以连接到TFS,以便处理与创建分支相关的事件?

当您将事件连接到客户端API时,您只会获得由该客户端创建的事件。如果要连接一个
BranchObjectCreated
侦听器,然后调用
VersionControlServer.CreateBranch()
然后将调用您创建的分支对象侦听器

如果要侦听服务器上的事件(例如,当其他人创建分支时,或者您从其他客户端创建分支时),则需要连接到服务器的项目警报系统


您可以在中安装,以便在将向您发送电子邮件或调用web方法的项目上配置细粒度警报。此时,您可以创建一个引用此新分支的新生成。

谢谢,我查看了事件服务,但没有创建分支的事件。最后,我创建了一个服务,它每隔一段时间通过VersionControlServer中的QueryRootBranchObjects查询分支,然后根据自上次查询以来创建的任何新分支创建一个构建。+1为此,我应该提到轮询作为一个选项,这也是我过去所做的,并且取得了巨大成功。