以下を使用してチェックイン ポリシーを作成しています。
using Microsoft.TeamFoundation.VersionControl.Client;
現在のワークスペースまたは PendingCheckin から現在の TFS チーム プロジェクト名を取得したい
何か案は?
以下を使用してチェックイン ポリシーを作成しています。
using Microsoft.TeamFoundation.VersionControl.Client;
現在のワークスペースまたは PendingCheckin から現在の TFS チーム プロジェクト名を取得したい
何か案は?
次のように、保留中の変更に対して VersionControlServer.GetTeamProjectForServerPathを使用できます。
var pendingChange = pendingCheckin.GetAllPendingChanges().FirstOrDefault();
if(pendingChange != null) {
return vcs.GetTeamProjectForServerPath(pendingChange.ServerItem);
}
これは、保留中の変更が複数のチーム プロジェクトにまたがっているかどうかを検出できることも意味します。
編集/拡張:
考えてみると、チェックインしているファイルがまだサーバー上にない可能性があるため、おそらくローカル パスを使用する必要があります (追加)。
そのため、代わりにWorkspace.GetTeamProjectForLocalPathを使用できます。
var workspace = pendingCheckin.GetWorkspace();
var pendingChange = pendingCheckin.GetAllPendingChanges().FirstOrDefault();
if(pendingChange != null) {
return workspace.GetTeamProjectForLocalPath(pendingChange.LocalItem);
}
でアクセスできます
BuildDetail.TeamProject
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.Build.Client.dll でアセンブリを見つけます。