我仍然无法通过我的 C# 应用程序与 TFS 通信。我正在尝试使用 PendingChanges 来签入由我的应用程序创建的文件,但是经过数小时的谷歌研究和阅读后,我还没有找到一种只签入特定文件的方法。每当我进行签入时,TFS 只会签入当前签出的所有项目以及我告诉它签入的项目。有没有办法从 PendingChanges 对象中删除某些项目或创建一个全新的 pendingchanges 对象我需要签入的文件?全有或全无的整个行为似乎很荒谬。请帮忙。
Workspace myWorkspace = createWorkspace();
// Show our pending changes.
PendingChange[] pendingChanges = myWorkspace.GetPendingChanges();
rt.Text += "Your current pending changes: \n";
foreach (string f in checkinItems)
{
foreach (PendingChange pendingChange in pendingChanges)
{
if (Path.Combine(localPath, f) != pendingChange.LocalItem)
{
toCheckIn.Add(Path.Combine(localPath, f));
rt.Text += "Found one!" + Path.Combine(localPath, f).ToString() + "\n";
break;
}
else
{
rt.Text += pendingChange.LocalItem + " Not ours. \n";
}
}
}
myWorkspace.PendAdd(toCheckIn.ToArray(), true);
// Checkin the items we added.
int changesetNumber = myWorkspace.CheckIn(pendingChanges, currentUserName + ": " + toCheckIn + " from CokomImport");
rt.Text += "Checked in changeset " + changesetNumber;
这是我到目前为止的代码。它过滤掉了我不需要的东西,但最终它没有任何区别,因为我需要检查原始的 PendingChanges 以及我需要添加到其中的东西。