TFS에서 빌드 정의를 자동화하는 코드가 있습니다.TFS API BranchObjectCreated 이벤트가 실행되지 않습니다.
이제 분기가 생성 될 때마다이 코드를 호출하고 싶습니다.
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에 연결할 수있는 또 다른 방법이 있습니까?
감사합니다. 이벤트 서비스를 살펴 보았지만 분기가 생성되는 이벤트가 없습니다. 결국 나는 간격으로 VersionControlServer의 QueryRootBranchObjects를 통해 브랜치를 쿼리하고 이전 쿼리 이후 생성 된 새로운 브랜치로부터 빌드를 생성하는 서비스를 만들었다. – bitsprint
+1, 폴링을 옵션으로 언급 했어야했는데, 그것은 과거에도 큰 성공을 거둔 것입니다. –