public async Task<IEnumerable<LibraryDependency>> GetDependencies(WalkProviderMatch match, FrameworkName targetFramework) { using (var stream = await _source.OpenNuspecStreamAsync(new PackageInfo { Id = match.Library.Name, Version = match.Library.Version, ContentUri = match.Path })) { var metadata = (IPackageMetadata)Manifest.ReadFrom(stream, validateSchema: false).Metadata; IEnumerable<PackageDependencySet> dependencySet; if (VersionUtility.TryGetCompatibleItems(targetFramework, metadata.DependencySets, out dependencySet)) { return dependencySet .SelectMany(ds => ds.Dependencies) .Select(d => new LibraryDependency { LibraryRange = new LibraryRange { Name = d.Id, VersionRange = d.VersionSpec == null ? null : new SemanticVersionRange(d.VersionSpec) } }) .ToList(); } } return Enumerable.Empty<LibraryDependency>(); }
public Task<RuntimeFile> GetRuntimes(WalkProviderMatch match, FrameworkName targetFramework) { foreach(var path in _dependencyProvider.GetAttemptedPaths(targetFramework)) { var runtimeJsonPath = path .Replace("{name}.nuspec", "runtime.json") .Replace("project.json", "runtime.json") .Replace("{name}", match.Library.Name) .Replace("{version}", match.Library.Version.ToString()); // Console.WriteLine("*** {0}", runtimeJsonPath); if (File.Exists(runtimeJsonPath)) { Console.WriteLine("*** READING {0}", runtimeJsonPath); var formatter = new RuntimeFileFormatter(); return Task.FromResult(formatter.ReadRuntimeFile(runtimeJsonPath)); } } return Task.FromResult<RuntimeFile>(null); }
public Task<IEnumerable<LibraryDependency>> GetDependencies(WalkProviderMatch match, FrameworkName targetFramework) { var description = _dependencyProvider.GetDescription(match.Library, targetFramework); return Task.FromResult(description.Dependencies); }
public Task CopyToAsync(WalkProviderMatch match, Stream stream) { // We never call this on local providers throw new NotImplementedException(); }
public async Task CopyToAsync(WalkProviderMatch match, Stream stream) { using (var nupkgStream = await _source.OpenNupkgStreamAsync(new PackageInfo { Id = match.Library.Name, Version = match.Library.Version, ContentUri = match.Path })) { await nupkgStream.CopyToAsync(stream); } }
public async Task<RuntimeFile> GetRuntimes(WalkProviderMatch match, FrameworkName targetFramework) { using (var stream = await _source.OpenRuntimeStreamAsync(new PackageInfo { Id = match.Library.Name, Version = match.Library.Version, ContentUri = match.Path })) { if (stream != null) { var formatter = new RuntimeFileFormatter(); using (var reader = new StreamReader(stream)) { return formatter.ReadRuntimeFile(reader); } } } return null; }