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(); }
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); } }