TFS 2008使用C#应用标签

时间:2010-11-22 12:48:57

标签: c# label tfs2008

有没有办法使用C#将标签应用于TFS 2008项目/目录? 我知道命令行程序:

tf label SampleLabel $/Project1/Source/* /recursive /server:TFS1

但我想用C#代码执行此操作,并且不希望从C#运行TF.exe命令行。

1 个答案:

答案 0 :(得分:3)

以下代码段标记了特定变更集中的所有更改。将其更改为标记特定路径中的所有文件应该很简单。而不是遍历变更集,只需执行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);
    }