gpt4 book ai didi

TFS API BranchObjectCreated 事件不会触发

转载 作者:行者123 更新时间:2023-12-02 08:44:40 27 4
gpt4 key购买 nike

我有一些代码可以在 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
}

问题是,当我从 Visual Studio 中的源代码管理资源管理器创建分支时,该事件永远不会触发。

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

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

最佳答案

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

如果您想监听服务器上的事件(例如当其他人创建分支时,或者您从不同的客户端创建分支时),那么您需要绑定(bind)到服务器的项目警报系统。

您可以安装Alerts ExplorerTeam Foundation Server Power Tools这将允许您在向您发送电子邮件或调用 Web 方法的项目上配置细粒度的警报。此时,您可以创建引用此新分支的新构建。

关于TFS API BranchObjectCreated 事件不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153351/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com