public void Merge(PackageInfo other) { StableVersions.UnionWith(other.StableVersions); if (other.BaselineVersion != null && BaselineVersion == null) { BaselineVersion = other.BaselineVersion; } if (other.PreRelease != null && PreRelease == null) { PreRelease = other.PreRelease; } foreach (var inboxOnPair in other.InboxOn.GetInboxVersions()) { InboxOn.AddInboxVersion(inboxOnPair.Key, inboxOnPair.Value); } foreach (var assemblyVersionInPackage in other.AssemblyVersionInPackageVersion) { Version otherAssemblyVersion = assemblyVersionInPackage.Key; Version otherPackageVersion = assemblyVersionInPackage.Value; AddAssemblyVersionInPackage(otherAssemblyVersion, otherPackageVersion); } }
public void Merge(PackageInfo other) { StableVersions.UnionWith(other.StableVersions); if (other.BaselineVersion != null) { // prefer other over existing BaselineVersion = other.BaselineVersion; } if (other.PreRelease != null) { PreRelease = other.PreRelease; } //foreach(var inboxFrameworkAssemblyVersion in other.InboxFrameworkAssemblyVersions) //{ //} foreach (var assemblyVersionInPackage in other.AssemblyVersionInPackageVersion) { Version otherAssemblyVersion = assemblyVersionInPackage.Key; Version otherPackageVersion = assemblyVersionInPackage.Value; AddAssemblyVersionInPackage(otherAssemblyVersion, otherPackageVersion); } }
public void Merge(PackageInfo other) { StableVersions.UnionWith(other.StableVersions); if (other.BaselineVersion != null) { // prefer other over existing BaselineVersion = other.BaselineVersion; } foreach (var assemblyVersionInPackage in other.AssemblyVersionInPackageVersion) { Version otherAssemblyVersion = assemblyVersionInPackage.Key; Version otherPackageVersion = assemblyVersionInPackage.Value; AddAssemblyVersionInPackage(otherAssemblyVersion, otherPackageVersion); } }
public void AddAssemblyVersionInPackage(Version assemblyVersion, Version packageVersion) { Version existingPackageVersion; if (AssemblyVersionInPackageVersion.TryGetValue(assemblyVersion, out existingPackageVersion)) { bool existingStable = StableVersions.Contains(existingPackageVersion); bool updateStable = StableVersions.Contains(packageVersion); // always prefer a stable package over unstable package // use the highest unstable package version // use the lowest stable package version if ((updateStable && !existingStable) || // update to stable from unstable (updateStable && existingStable && packageVersion < existingPackageVersion) || // update to lower stable (!updateStable && !existingStable && packageVersion > existingPackageVersion)) // update to higher non-stable version { AssemblyVersionInPackageVersion[assemblyVersion] = packageVersion; } } else { AssemblyVersionInPackageVersion[assemblyVersion] = packageVersion; } }