如何在使用TFS自定义插件时获取项目名称

时间:2012-01-12 16:14:47

标签: tfs custom-controls

当我们为自定义TFS插件编写C#代码时,我们正在捕获签入事件。我们如何检索用户正在检查的项目名称?

2 个答案:

答案 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

在这种情况下,用户正在同时检查Project1Project2

答案 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中找到示例:使用插件注册事件