Событие TFS API BranchObjectCreated не запускается - PullRequest
4 голосов
/ 16 ноября 2011

У меня есть код для автоматизации создания определений сборки в TFS.

Теперь я хотел бы, чтобы этот код вызывался всякий раз, когда создается ветвь.

Глядя на API,Я вижу, что существует BranchObjectCreatedEvent в Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer .

Итак, я добавил некоторый код вконсольное приложение для обработки события.

    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
    }

Проблема в том, что событие никогда не возникает, когда я создаю ветку из Source Control Explorer в Visual Studio.

Документация MSDN ограничена, и я не могу найти другие примерыиспользования, поэтому я надеюсь, что кто-то может сказать мне, если это правильный подход.

Если так, то почему событие не запускается?Если нет, есть ли другой способ подключиться к TFS, чтобы обрабатывать события, связанные с созданием веток?

1 Ответ

4 голосов
/ 16 ноября 2011

Когда вы подключаете события к клиентскому API, вы получаете только те события, которые были созданы этим клиентом . Если вам нужно подключить BranchObjectCreated слушатель, то вызовите VersionControlServer.CreateBranch(), , тогда будет вызван прослушиватель, созданный вашим объектом ветвления.

Если вы хотите прослушивать события на сервере (например, когда кто-то создает ветку или вы создаете ветку из другого клиента), вам необходимо подключиться к системе оповещений проекта сервера.

Вы можете установить Alerts Explorer в Team Foundation Server Power Tools , который позволит вам настроить детализированные оповещения для проектов, которые будут отправлять вам электронную почту или вызывать веб-метод. , На этом этапе вы можете создать новую сборку, которая ссылается на эту новую ветвь.

...