У меня есть код для автоматизации создания определений сборки в 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
}
Проблема в том, что это событие никогда не срабатывает, когда я создаю ветку из Source Control Explorer в Visual Studio.
Документация MSDN ограничена, и я не могу найти других примеров использования, поэтому я надеюсь, что кто-нибудь сможет сказать мне, правильный ли это подход.
Если да, то почему событие может не запускаться? Если нет, есть ли другой способ подключиться к TFS, чтобы я мог обрабатывать события, связанные с созданием ветвей?