/// <summary> /// THIS API WILL BE DEPRECATED /// Returns package references for all the dependent packages /// This is called by Find-Package -IncludeDependencies and returned as a flat list /// As well as Install-Package -WhatIf /// </summary> /// <param name="fastPackageReference"></param> /// <param name="request">An object passed in from the CORE that contains functions that can be used to interact with the CORE and HOST</param> public void GetPackageDependencies(string fastPackageReference, Request request) { request.Debug("Calling '{0}::GetPackageDependencies' '{1}'", PackageProviderName, fastPackageReference); string source; string id; string version; if (!fastPackageReference.TryParseFastPath(out source, out id, out version)) { request.Error(ErrorCategory.InvalidArgument, fastPackageReference, Strings.InvalidFastPath, fastPackageReference); } PackageIdentity packageIdentity = new PackageIdentity(id, new NuGetVersion(version)); var repo = RepositoryFactory.CreateV3(source); var dependencyResolver = repo.GetResource <DepedencyInfoResource>(); var dependenciesTask = dependencyResolver.ResolvePackages(packageIdentity.AsEnumerable(), NuGetFramework.AnyFramework, false, CancellationToken.None); dependenciesTask.Wait(); var results = dependenciesTask.Result; // TODO: Yield foreach (var result in results) { foreach (var dependency in result.Dependencies) { //dependency.Id; //dependency.VersionRange; } } }