GetDependencyTreeHierarchyAsync ( ) { #if DEBUG w.Indent++; await w.WriteLineAsync($" id = {this.PackageId}"); #endif List <NuGetPackage> dependencies = null; if (null == PackageSearchMetadata) { PackageSearchMetadata = await this.GetPackageSearchMetadataAsync(); } foreach (IPackageSearchMetadata psm in PackageSearchMetadata) { if (!psm.Identity.Version.OriginalVersion.Contains(this.VersionTextual)) { continue; } foreach (PackageDependencyGroup ds in psm.DependencySets) { global::NuGet.Frameworks.NuGetFramework tf = ds.TargetFramework; if (tf.DotNetFrameworkName.ToLower().Contains("monoandroid")) { foreach (global::NuGet.Packaging.Core.PackageDependency p in ds.Packages) { if (null == dependencies) { dependencies = new List <NuGetPackage>(); } string id = p.Id; global::NuGet.Versioning.VersionRange vr = p.VersionRange; string vrpp = vr.PrettyPrint(); NuGetPackage np = new NuGetPackage() { PackageId = id, VersionTextual = vr.MinVersion.ToFullString(), DependencyVersionRange = vrpp, DependencyOf = this, }; np.Dependencies = await np.GetDependencyTreeHierarchyAsync(); dependencies.Add(np); } } else { break; } } this.Dependencies = dependencies; } return(dependencies); }