| File: AssemblyDependency\AssemblyNameReferenceAscendingVersionComparer.cs | Web Access |
| Project: src\msbuild\src\Tasks\Microsoft.Build.Tasks.csproj (Microsoft.Build.Tasks.Core) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Collections.Generic; namespace Microsoft.Build.Tasks { /// <summary> /// Compare the two AssemblyNameReferences by version number. /// </summary> internal sealed class AssemblyNameReferenceAscendingVersionComparer : IComparer<AssemblyNameReference> { internal static readonly IComparer<AssemblyNameReference> comparer = new AssemblyNameReferenceAscendingVersionComparer(); private static Version DummyVersion { get; } = new Version(0, 0); /// <summary> /// Private construct so there's only one instance. /// </summary> private AssemblyNameReferenceAscendingVersionComparer() { } /// <summary> /// Compare the two AssemblyNameReferences by version number. /// </summary> public int Compare(AssemblyNameReference i1, AssemblyNameReference i2) { Version v1 = i1.assemblyName.Version; Version v2 = i2.assemblyName.Version; if (v1 == null) { v1 = DummyVersion; } if (v2 == null) { v2 = DummyVersion; } return v1.CompareTo(v2); } } }