如何在使用TFS自定义插件时获取项目名称
答
团队项目名称始终是路径的第一部分。例如,如果在一个文件中的用户检查:
$/ExampleProject/Folder/File.txt
那么团队项目名称是ExampleProject
。该TFS SDK有一个辅助方法,让你获得给定源控制路径的团队项目名称:
string teamProjectName =
VersionControlPath.GetTeamProjectName("$/ExampleProject/Folder/File.txt");
注意,您可以在同一时间检查到多个团队项目。例如,待更改可能包含修改:
$/Project1/Folder/File.txt
$/Project2/Folder/File.txt
在这种情况下,用户被检测到两个Project1
和Project2
。
答
拍摄时使用TFS 2010插件,你环通所有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();
}
}
}
这会给你所有已在被检查的文件。这仅仅是局部的代码,你需要找到实例来自nielshebling.de标题为TFS 2010:使用插件注册一个事件
你是什么意思的'项目':* .csproj,TeamProject或其他?如果未完成的变更集包含来自不同项目的内容,你会怎么做? – pantelif 2012-01-12 16:24:33