当我们为自定义TFS插件编写C#代码时,我们正在捕获签入事件。我们如何检索用户正在检查的项目名称?
答案 0 :(得分:2)
团队项目名称始终是路径的第一部分。例如,如果用户将文件签入:
$/ExampleProject/Folder/File.txt
然后团队项目名称为ExampleProject
。 TFS SDK有一个帮助方法,允许您在给定源控制路径的情况下获取Team Project名称:
string teamProjectName =
VersionControlPath.GetTeamProjectName("$/ExampleProject/Folder/File.txt");
请注意,您可以同时检查多个团队项目。例如,您的待处理更改可以包含对以下内容的更改:
$/Project1/Folder/File.txt
$/Project2/Folder/File.txt
在这种情况下,用户正在同时检查Project1
和Project2
。
答案 1 :(得分:1)
使用TFS 2010插件捕获Checkin事件时,您通过所有CheckinNotification属性(notificationEventArgs作为CheckinNotification)循环,我得到..... 的变更集, 评论, 计算机名, NotificationInfo, 选项, CheckinNote, PolicyOverrideInfo, ChangesetOwnerName, WorkspaceOwnerName, 工作区名, CheckinType, SubmittedItems, HasAllItems 强>
提交的项目是一个集合,只是通过集合循环...
string myitem="";
CheckinNotification data = notificationEventArgs as CheckinNotification;
if (data != null)
{
Type type = data.GetType();
PropertyInfo[] myproperties = type.GetProperties();
if (property.Name == "SubmittedItems")
{
foreach (var checkin in data.SubmittedItems)
myitem = checkin.ToString();
}
}
}
这将为您提供已签入的所有文件。这只是部分代码,您需要从名为TFS 2010的nielshebling.de中找到示例:使用插件注册事件