Я хотел бы добавить метку к набору файлов, используя TFS API. Мой код выглядит так:
VersionControlLabel label = new VersionControlLabel(this.vcServer, this.label,
this.vcServer.AuthenticatedUser, this.labelScopeDirectory, this.labelComment);
List<LabelItemSpec> labelSpecs = new List<LabelItemSpec>();
// iterate files and versions
foreach (var fileAndVersion in this.filesAndVersions)
{
VersionSpec vs = null;
Item i = null;
// i have no idea why the itemspec is needed instead of the item and version...
ItemSpec iSpec = new ItemSpec("{0}/{1}".FormatString(this.source, fileAndVersion.Key), RecursionType.None);
GetItemAndVersionSpec(fileAndVersion.Key, fileAndVersion.Value, out vs, out i);
labelSpecs.Add(new LabelItemSpec(iSpec, vs, false));
}
this.vcServer.CreateLabel(label, labelSpecs.ToArray(), LabelChildOption.Merge);
(там есть несколько методов расширения ... все это в значительной степени снято с этого сообщения в блоге )
Что меня беспокоит, так это в MSDN документах :
This enumeration supports the .NET Framework infrastructure
and is not intended to be used directly from your code.
Так что MSDN говорит мне не использовать это перечисление (LabelChildOption), которое на самом деле является единственным способом создать метку и добавить ее в файл.
Есть ли лучший способ? Является ли этот вид «серой» области в TFS API?