2010-11-22 2 views
2

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

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

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

ответ

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); 
    }