Я пытаюсь написать код, который контролирует TFS WorkItems на моей локальной рабочей станции, но в настоящий момент у меня возникают проблемы с тем, чтобы запустить события.Использование API TFS 2010 для подписки на события WorkItem
Я подписался на событие FieldChange WorkItem, но не срабатывает при изменении/обновлении любого рабочего элемента.
Код ниже представляет собой консольное приложение, которое, как я думаю, должно работать, но это не так. Кто-нибудь знает, как успешно подписаться на эти события?
Любая помощь в этом вопросе заметна.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.TeamFoundation.Client;
using System.Net;
using Microsoft.TeamFoundation.VersionControl.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
using Microsoft.TeamFoundation.Framework.Client;
namespace TFSEvents
{
class Program
{
static void Main(string[] args)
{
try
{
Uri serverUri = new Uri(@"http://tfs");
string username, password;
Console.WriteLine("Enter Username:");
username = Console.ReadLine();
Console.WriteLine("Enter password:");
password = ReadPassword();
NetworkCredential cred = new NetworkCredential(username, password);
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(serverUri, cred);
tfs.EnsureAuthenticated();
IEventService vs = tfs.GetService<IEventService>();
var wiww = tfs.GetService<WorkItemStore>();
var wi = wiww.GetWorkItem(4671);
wi.FieldChanged += new WorkItemFieldChangeEventHandler(changeHandler);
var x = vs.GetAllEventSubscriptions().ToList();
Console.WriteLine("Press \'q\' to quit.");
while (Console.ReadLine() != "q") ;
}
catch (Exception e)
{
}
}
private static void changeHandler(object o, WorkItemEventArgs e)
{
Console.WriteLine(e.Field);
}
}
}
В вашей статье используется BisSubscribe.exe. Я не хочу этого использовать. Можете ли вы предложить что-то еще? –
Посмотрите этот блог: http://www.codeproject.com/Articles/730928/Close-a-Work-Item-only-if-Child-Work-items-are-c –
@ Cece-MSFT, что я не думаю help –