TFS 2008 применить метку с C # - PullRequest
2 голосов
/ 22 ноября 2010

Есть ли способ применить метку к проекту / каталогу TFS 2008 с помощью C #?Я знаю о программе командной строки:

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

Но я хочу сделать это с помощью кода C # и НЕ хочу запускать командную строку TF.exe из C #.

1 Ответ

3 голосов
/ 22 ноября 2010

Следующий фрагмент кода помечает все изменения в конкретном наборе изменений.Это должно быть просто изменить, чтобы пометить все файлы по определенному пути.Вместо того, чтобы перебирать ревизию, просто выполните 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);
    }
...