Я выполняю некоторую работу в командной строке, используя объектную модель TFS, и я хочу воспроизвести поведение обнаружения рабочего пространства, наблюдаемое в tf.exe и tfpt.exe, без введения артефактов из-за моей собственной конкретной реализации.В настоящее время моим сценариям требуется больше информации, чем требуется tf.exe - значительное количество моих параметров просто для создания экземпляра соединения.
В частности, я должен требовать, чтобы пользователи явно передавали сервер Uri (tfsUriString) и имя коллекции (tfsCollectionName), но это кажется ненужным и раздражающим, поскольку tf.exe может это сделать.
Uri tfsUri = new Uri(tfsUriString);
TfsConfigurationServer configurationServer = TfsConfigurationServerFactory.GetConfigurationServer(tfsUri);
ReadOnlyCollection<CatalogNode> collectionNodes = configurationServer.CatalogNode.QueryChildren( new[] { CatalogResourceTypes.ProjectCollection }, false, CatalogQueryOptions.None);
CatalogNode collectionNode = collectionNodes.Where(node => node.Resource.DisplayName == tfsCollectionName).SingleOrDefault();
Guid collectionId = new Guid(collectionNode.Resource.Properties["InstanceId"]);
TfsTeamProjectCollection teamProjectCollection = configurationServer.GetTeamProjectCollection(collectionId);
var vcServer = teamProjectCollection.GetService<VersionControlServer>();
Какие классы и методы могут использоваться для выполнения этого обнаружения таким же образомчто делает tf.exe?