private IEnumerable <ResolvedPackageReference> GetResolvedPackageReferences( IEnumerable <FileInfo> resolutions, IEnumerable <FileInfo> files, IEnumerable <DirectoryInfo> packageRoots) { foreach (var root in packageRoots) { if (TryGetPackageAndVersionFromPackageRoot(root, out var packageReference)) { var assemblyPaths = GetAssemblyPathsForPackage(root, resolutions); var probingPaths = new List <DirectoryInfo>(); probingPaths.Add(root); // PackageReference thingy var resolvedPackageReference = new ResolvedPackageReference( packageReference.PackageName, packageReference.PackageVersion, new List <FileInfo>(assemblyPaths).AsReadOnly(), root, new List <DirectoryInfo>(probingPaths).AsReadOnly()); yield return(resolvedPackageReference); } } }
public void Handle(ResolvedPackageReference reference) { var assemblyFile = reference.AssemblyPaths.First(); foreach (var dir in _probingPaths) { Logger.Log.Info("Probing: {dir}", dir); if (assemblyFile.FullName.StartsWith(dir.FullName)) { _resolvers[assemblyFile.FullName] = reference; } } }
public void Handle(ResolvedPackageReference reference) { var assemblyFile = reference.AssemblyPaths.First(); using var op = Log.OnEnterAndExit(); if (_resolvedReferences.TryGetValue(assemblyFile.FullName, out var previous)) { op.Info("Previously resolved {reference} at location {PackageRoot}", assemblyFile.FullName, previous.PackageRoot); return; } foreach (var dir in _probingDirectories) { if (IsSameDirectoryOrChildOf( assemblyFile.FullName, dir.FullName)) { op.Info("Resolved: {reference}", assemblyFile.FullName); _resolvedReferences[assemblyFile.FullName] = reference; return; } } }