/// <summary> /// Find all possible dependencies for package id. /// </summary> private List <RuntimePackageDependency> FindRuntimeDependenciesInternal(RuntimeDependencyKey key) { // Find all compatible RIDs foreach (var expandedRuntime in ExpandRuntimeCached(key.RuntimeName)) { RuntimeDescription runtimeDescription; if (Runtimes.TryGetValue(expandedRuntime, out runtimeDescription)) { if (runtimeDescription.RuntimeDependencySets.TryGetValue(key.PackageId, out var dependencySet)) { return(dependencySet.Dependencies.Values.AsList()); } } } return(new List <RuntimePackageDependency>()); }
public IEnumerable <RuntimePackageDependency> FindRuntimeDependencies(string runtimeName, string packageId) { if (_packagesWithDependencies == null) { // Find all packages that have runtime dependencies and cache this index. _packagesWithDependencies = new HashSet <string>( Runtimes.SelectMany(e => e.Value.RuntimeDependencySets.Select(f => f.Key)), StringComparer.OrdinalIgnoreCase); } if (_packagesWithDependencies.Contains(packageId)) { var key = new RuntimeDependencyKey(runtimeName, packageId); return(_dependencyCache.GetOrAdd(key, k => FindRuntimeDependenciesInternal(k))); } return(Enumerable.Empty <RuntimePackageDependency>()); }