有没有办法使用 C# 将标签应用到 TFS 2008 项目/目录? 我知道命令行程序:
tf label SampleLabel $/Project1/Source/* /recursive /server:TFS1
但我想使用 C# 代码执行此操作,并且不想从 C# 运行 TF.exe 命令行。
最佳答案
以下代码片段标记特定变更集中的所有变更。更改它以标记特定路径中的所有文件应该很简单。无需迭代变更集,只需执行 vcServer.GetItems("$/Project1/path", RecursionType.Full)
并迭代它们。
private void LabelChangeset(string fileLabel, Changeset changeset)
{
VersionControlLabel vcl = new VersionControlLabel(vcServer, fileLabel, null, cbProjects.SelectedItem.ToString(), "Autogen label.");
LabelItemSpec[] itemSpecs = new LabelItemSpec[changeset.Changes.Length];
string ver = string.Format("C{0}", changeset.ChangesetId);
VersionSpec fileVersion = VersionSpec.ParseSingleSpec(ver, null);
int index = 0;
foreach (Change c in changeset.Changes)
{
itemSpecs[index++] = new LabelItemSpec(new ItemSpec(c.Item.ServerItem, RecursionType.None), fileVersion, false);
}
LabelResult[] results = vcServer.CreateLabel(vcl, itemSpecs, LabelChildOption.Replace);
}
关于c# - TFS 2008 使用 C# 应用标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4245542/