示例#1
0
        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);
        }
示例#2
0
        /// <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));
        }
示例#5
0
 public PackageDependencyMetadata(Packaging.Core.PackageDependency serverData)
 {
     Id    = serverData.Id;
     Range = serverData.VersionRange;
 }