private static async Task <IReadOnlyList <Packaging.Core.PackageDependency> > GetDependencies(NuGetProject project) { var results = new List <Packaging.Core.PackageDependency>(); var projectInstalledPackages = await project.GetInstalledPackagesAsync(CancellationToken.None); var buildIntegratedProject = project as BuildIntegratedNuGetProject; foreach (var package in projectInstalledPackages) { VersionRange range = null; if (buildIntegratedProject != null && package.HasAllowedVersions) { // The actual range is passed as the allowed version range for build integrated projects. range = package.AllowedVersions; } else { range = new VersionRange( minVersion: package.PackageIdentity.Version, includeMinVersion: true, maxVersion: package.PackageIdentity.Version, includeMaxVersion: true); } var dependency = new Packaging.Core.PackageDependency(package.PackageIdentity.Id, range); results.Add(dependency); } return(results); }
/// <summary> /// Convert a nuspec dependency to a library dependency. /// </summary> public static LibraryDependency GetLibraryDependencyFromNuspec(Packaging.Core.PackageDependency dependency) { // Start with the default. For package to package this is everything but content v2. var includeType = LibraryIncludeFlagUtils.NoContent; // Add includes if (dependency.Include.Count > 0) { includeType = LibraryIncludeFlagUtils.GetFlags(dependency.Include); } // Remove excludes if (dependency.Exclude.Count > 0) { var excludeType = LibraryIncludeFlagUtils.GetFlags(dependency.Exclude); includeType = includeType & ~excludeType; } // Create the library // Nuspec references cannot contain suppress parent flags var libraryDependency = new LibraryDependency { LibraryRange = new LibraryRange { Name = dependency.Id, VersionRange = dependency.VersionRange, TypeConstraint = LibraryDependencyTarget.PackageProjectExternal }, IncludeType = includeType, SuppressParent = LibraryIncludeFlags.None }; return(libraryDependency); }
private void AddFlattennedPackageDependency( PackageDependencyGroup dependencyGroup, Packaging.Core.PackageDependency packageDependency, StringBuilder builder) { if (builder.Length > 0) { builder.Append("|"); } builder.Append(packageDependency.Id); builder.Append(":"); if (!packageDependency.VersionRange.Equals(VersionRange.All)) { builder.Append(packageDependency.VersionRange?.ToString("S", new VersionRangeFormatter())); } AddFlattenedFrameworkDependency(dependencyGroup, builder); }
private static PackageDependencyInfo CreatePackageDependencyInfo(PackageIdentity packageIdentity, params string[] dependencies) { if (dependencies != null && dependencies.Length % 2 != 0) { throw new ArgumentException("dependencies array length should be even"); } var dependencyList = new List <Packaging.Core.PackageDependency>(); if (dependencies != null) { for (var i = 0; i < dependencies.Length; i += 2) { var packageDependency = new Packaging.Core.PackageDependency(dependencies[i], VersionRange.Parse(dependencies[i + 1])); dependencyList.Add(packageDependency); } } return(new PackageDependencyInfo(packageIdentity, dependencyList)); }
public PackageDependencyMetadata(Packaging.Core.PackageDependency serverData) { Id = serverData.Id; Range = serverData.VersionRange; }