2012-01-12 8 views
1

カスタムTFSプラグインのC#コードを記述する際に、チェックインイベントをキャプチャしています。ユーザーがチェックインしているプロジェクト名を取得するにはどうすればよいですか?TFSカスタムプラグインを使用する場合のプロジェクト名の取得方法

+2

* .csproj、TeamProject、または何か他のものを 'プロジェクト'といいますか?保留中のチェンジセットに異なるプロジェクトのものが含まれている場合はどうしますか? – pantelif

答えて

2

チームプロジェクト名は、常にパスの最初の部分です。たとえば、に、ファイル内のユーザーかどうかをチェックする:

$/ExampleProject/Folder/File.txt 

は、その後チームプロジェクト名はExampleProjectです。あなたは、同時に複数のチームプロジェクトに確認することができます

string teamProjectName = 
    VersionControlPath.GetTeamProjectName("$/ExampleProject/Folder/File.txt"); 

注:TFS SDKを使用すると、ソース管理パスを与えられたチームプロジェクト名を取得できるようになりますヘルパーメソッドを持っています。

$/Project1/Folder/File.txt 
$/Project2/Folder/File.txt 

が、その場合には、ユーザーはProject1Project2の両方にチェックインされています。たとえば、あなたの保留中の変更はへの変更を含めることができます。

1

TFS 2010のためのプラグインを使用してチェックインイベントをキャプチャし、私が得るすべてのCheckinNotificationプロパティ(CheckinNotificationなどnotificationEventArgs)スルーあなたループ..... チェンジ、 コメント、 コンピューター、 NotificationInfo、 オプション、 CheckinNote、 PolicyOverrideInfo、 ChangesetOwnerName、 WorkspaceOwnerName、 スペースWorkspaceName、 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:プラグインを使用してイベントを登録する

関連する問題