我正在调查这样的事情:我是否有可能看到谁在TFS中改变了构建质量值?我在TFS中有很多关于EventService的出版物和材料。使用此服务,我可以收听BuildQualityValueChangedEvent并在Build Qaulity更改时触发一些操作。我想做以下事情:
在我完成所有研究之后,我可以得出结论,这个任务可以通过编写特定的TFS插件来完成,该插件将从SQL数据库查询信息,其中存储有关构建质量变化的信息。以下是问题: TFS在哪里存储来自BuildQualityValueChangedEvent事件的信息?有没有人有任何建议如何获得改变构建质量值的人的用户名?
更新1 我使用这样的代码来获取我的订阅信息
IEventService eventService = (IEventService)tfServer.GetService(typeof(IEventService));
Subscription[] subscriptions = eventService.GetAllEventSubscriptions(userName);
List<Subscription> list = new List<Subscription>();
但我没有得到我想要的信息。我知道有 BuildStatusChangeEvent 类包含了我需要的有关构建的所有信息。你知道怎么用吗?也许有些建议?
答案 0 :(得分:0)
经过更多研究后,我发现包含此类信息的数据库表。它的名字是dbo.tbl_ClientEvent。此信息类似于&#34;&lt;&#34; ChangedBy&#34;&gt;&#34; TFSSERVER \用户&#34;&LT;&#34; /&#34;&#34; ChangedBy&#34;&GT;&#34;
答案 1 :(得分:0)
您可以通过ISubscriber中提供的API访问它。您传递的Xml事件数据将包含该信息,您可以解析并记录它。
要执行此操作,您需要实现ISubscriber接口。我在2010年的VB中有一个老例子,但它应该给你一个起点:
在NotifyEvent方法的主体中,您可以通过将“notificationEventArgs”xml解析为BuildQualityChangedNotificationEvent对象来访问有关谁进行更改的信息。