public BuildSolutionStep UpdatePackages() { var packageWithFrameworks = packages as PackageWithFramework[] ?? packages.ToArray(); packageWithFrameworks = packageWithFrameworks.OrderBy(x => x.IsLatestVersion(previousVersions[x.Id])).ToArray(); var packageUpdateResults = new List<PackageUpdateResult>(); foreach (var package in packageWithFrameworks) { var isLatestVersion = package.IsLatestVersion(previousVersions[package.Id]); if (isLatestVersion) { continue; } package.IncrementAssemblyInfo(buildAndRevision); } IReadOnlyDictionary<string, Func<Version>> packagesVersion = packageWithFrameworks .ToDictionary(k => k.Id, v => (Func<Version>)(() => new Version(v.Version))); foreach (var package in packageWithFrameworks) { var nugetDependecies = package.TryUpdateNuspecDependencies(packagesVersion).ToArray(); var isLatestVersion = package.IsLatestVersion(previousVersions[package.Id]); if (!nugetDependecies.Any() && isLatestVersion) { continue; } package.UpdateNuspecVersion(); var updateDataResult = new PackageUpdateDataResult( package.Version, nugetDependecies, package.FrameworkPackages); var packageUpdate = new PackageUpdateResult(package.Id, updateDataResult); packageUpdateResults.Add(packageUpdate); } return new BuildSolutionStep(this.buildAndRevision, this.solutionSystemInfo, new NugetPackageResultCollection(packageUpdateResults)); }
public PackageUpdateResult(string id, PackageUpdateDataResult data) { Id = id; Data = data; }