Esempio n. 1
0
        private async Task ReportDependency(IConsole console, Project.Dependency dependency, int level)
        {
            // Get the current version
            NuGetVersion referencedVersion = dependency.VersionRange.MinVersion;

            // Get the latest version
            bool includePrerelease = referencedVersion.IsPrerelease;

            if (Prerelease == PrereleaseReporting.Always)
            {
                includePrerelease = true;
            }
            else if (Prerelease == PrereleaseReporting.Never)
            {
                includePrerelease = false;
            }
            NuGetVersion latestVersion = await _nugetService.GetLatestVersion(dependency.Name, includePrerelease);

            console.WriteIndent(level);
            console.Write($"{dependency.Name} ");
            console.Write(referencedVersion, latestVersion > referencedVersion ? ConsoleColor.Red : ConsoleColor.Green);

            if (latestVersion > referencedVersion)
            {
                console.Write(" (");
                console.Write(latestVersion, ConsoleColor.Blue);
                console.Write(")");
            }
            console.WriteLine();
        }
Esempio n. 2
0
        private async Task ReportDependency(IConsole console, Project.Dependency dependency, VersionRange versionRange, List <Uri> sources, int indentLevel,
                                            Project.TargetFramework targetFramework, string projectFilePath)
        {
            console.WriteIndent(indentLevel);
            console.Write($"{dependency.Name}");

            if (dependency.AutoReferenced)
            {
                console.Write(" [A]");
            }

            var referencedVersion = dependency.ResolvedVersion;

            if (referencedVersion == null)
            {
                console.Write(" ");
                console.Write("Cannot resolve referenced version", ConsoleColor.White, ConsoleColor.DarkRed);
                console.WriteLine();
            }
            else
            {
                if (!console.IsOutputRedirected)
                {
                    console.Write("...");
                }

                var latestVersion = await _nugetService.ResolvePackageVersions(dependency.Name, referencedVersion, sources, versionRange, VersionLock, Prerelease, targetFramework.Name, projectFilePath);

                if (!console.IsOutputRedirected)
                {
                    console.Write("\b\b\b");
                }

                console.Write(" ");

                if (latestVersion != null)
                {
                    console.Write(referencedVersion, latestVersion > referencedVersion ? ConsoleColor.Red : ConsoleColor.Green);
                }
                else
                {
                    console.Write($"{referencedVersion} ", ConsoleColor.Yellow);
                    console.Write("Cannot resolve latest version", ConsoleColor.White, ConsoleColor.DarkCyan);
                }

                if (latestVersion > referencedVersion)
                {
                    console.Write(" (");
                    console.Write(latestVersion, ConsoleColor.Blue);
                    console.Write(")");
                }
                console.WriteLine();
            }

            foreach (var childDependency in dependency.Dependencies)
            {
                await ReportDependency(console, childDependency, childDependency.VersionRange, sources, indentLevel + 1, targetFramework, projectFilePath);
            }
        }