private IEnumerable <PackageDependency> GetPackageDependenciesFromRepositoriesConfig(TeamProject teamProject, Item repository) { List <PackageDependency> repositoryDependencies = new List <PackageDependency>(); Stream repoFileStream = repository.DownloadFile(); XDocument repoXml = XDocument.Load(repoFileStream); IEnumerable <string> relativePackageConfigPaths = configInterpreter.GetRelativePackagesConfigPathsFromRepositoriesConfig(repoXml); string repositoriesConfigServerPath = repository.ServerItem; int repositoriesConfigLength = repositoriesConfigFileName.Length; string packageConfigFolderServerPath = repositoriesConfigServerPath.Remove(repositoriesConfigServerPath.Length - repositoriesConfigLength, repositoriesConfigLength); foreach (string packageConfigPathRelativeToRepositoriesConfig in relativePackageConfigPaths) { // navigate to the folder server path for the repositories.config file string repositoryNodeServerItem = tfsServerPathTranslator.GetServerPath(packageConfigFolderServerPath, packageConfigPathRelativeToRepositoriesConfig); Item packageConfig = teamProject.VersionControlServer.GetItem(repositoryNodeServerItem); if (packageConfig != null) { Stream packagesConfigStream = packageConfig.DownloadFile(); XDocument packagesConfigXml = XDocument.Load(packagesConfigStream); IEnumerable <PackageDependency> packageDependencies = configInterpreter.GetPackageDependenciesFromPackagesConfig(packagesConfigXml); foreach (PackageDependency packageDependency in packageDependencies) { if (repositoryDependencies.Where(dp => dp.Id == packageDependency.Id && dp.VersionSpec == packageDependency.VersionSpec).FirstOrDefault() == null) { repositoryDependencies.Add(packageDependency); } } } } return(repositoryDependencies); }