public static Task <RemoteMatch> FindProjectMatchAsync( LibraryRange libraryRange, NuGetFramework framework, IEnumerable <IDependencyProvider> projectProviders, CancellationToken cancellationToken) { RemoteMatch result = null; // Check if projects are allowed for this dependency if (libraryRange.TypeConstraintAllowsAnyOf( (LibraryDependencyTarget.Project | LibraryDependencyTarget.ExternalProject))) { foreach (var provider in projectProviders) { if (provider.SupportsType(libraryRange.TypeConstraint)) { var match = provider.GetLibrary(libraryRange, framework); if (match != null) { result = new LocalMatch { LocalLibrary = match, Library = match.Identity, LocalProvider = provider, Provider = new LocalDependencyProvider(provider), Path = match.Path, }; } } } } return(Task.FromResult <RemoteMatch>(result)); }
private Task <RemoteMatch> FindProjectMatch( LibraryRange libraryRange, NuGetFramework framework, GraphEdge <RemoteResolveResult> outerEdge, CancellationToken cancellationToken) { RemoteMatch result = null; // Check if projects are allowed for this dependency if (libraryRange.TypeConstraintAllowsAnyOf( (LibraryDependencyTarget.Project | LibraryDependencyTarget.ExternalProject))) { foreach (var provider in _context.ProjectLibraryProviders) { if (provider.SupportsType(libraryRange.TypeConstraint)) { var match = provider.GetLibrary(libraryRange, framework); if (match != null) { result = new LocalMatch { LocalLibrary = match, Library = match.Identity, LocalProvider = provider, Provider = new LocalDependencyProvider(provider), Path = match.Path, }; } } } } return(Task.FromResult <RemoteMatch>(result)); }
private Task <RemoteMatch> FindProjectMatch( LibraryRange libraryRange, NuGetFramework framework, GraphEdge <RemoteResolveResult> outerEdge, CancellationToken cancellationToken) { RemoteMatch result = null; // Check if projects are allowed for this dependency if (libraryRange.TypeConstraintAllowsAnyOf( (LibraryDependencyTarget.Project | LibraryDependencyTarget.ExternalProject))) { // Find the root directory of the parent project if one exists. // This is used for resolving global json. var parentProjectRoot = GetRootPathForParentProject(outerEdge); foreach (var provider in _context.ProjectLibraryProviders) { if (provider.SupportsType(libraryRange.TypeConstraint)) { var match = provider.GetLibrary(libraryRange, framework, parentProjectRoot); if (match != null) { result = new LocalMatch { LocalLibrary = match, Library = match.Identity, LocalProvider = provider, Provider = new LocalDependencyProvider(provider), Path = match.Path, }; } } } } return(Task.FromResult <RemoteMatch>(result)); }