| File: src\CompareVersions.cs | Web Access |
| Project: src\arcade\src\Microsoft.DotNet.Arcade.Sdk\Microsoft.DotNet.Arcade.Sdk.csproj (Microsoft.DotNet.Arcade.Sdk) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using NuGet.Versioning; namespace Microsoft.DotNet.Arcade.Sdk { public class CompareVersions : Microsoft.Build.Utilities.Task { [Required] public string Left { get; set; } [Required] public string Right { get; set; } [Output] public int Result { get; set; } public override bool Execute() { ExecuteImpl(); return !Log.HasLoggedErrors; } private void ExecuteImpl() { if (!SemanticVersion.TryParse(Left, out var left)) { Log.LogError($"Invalid version: '{Left}'"); return; } if (!SemanticVersion.TryParse(Right, out var right)) { Log.LogError($"Invalid version: '{Right}'"); return; } Result = left.CompareTo(right); } } }