using System.Globalization;
private static string GetRuntimeVersion(NuGetVersion version)
if (version.IsPrerelease)
var buildNumberString = version.ReleaseLabels.Last();
if (uint.TryParse(buildNumberString, out _))
var normalizedVersion = version.ToNormalizedString();
return normalizedVersion.Substring(0, normalizedVersion.LastIndexOf('.'));
return version.ToNormalizedString();
return string.Format(CultureInfo.InvariantCulture, "{0}.{1}", version.Major, version.Minor);
public static void Main()
Console.WriteLine(GetRuntimeVersion(new NuGetVersion("1.0.0")));
Console.WriteLine(GetRuntimeVersion(new NuGetVersion("1.2.3")));
Console.WriteLine(GetRuntimeVersion(new NuGetVersion("2.3.4-test")));
Console.WriteLine(GetRuntimeVersion(new NuGetVersion("3.0.0-test.12345")));
Console.WriteLine(GetRuntimeVersion(new NuGetVersion("3.0.0-unix-timestamp.1652942155")));
Console.WriteLine(GetRuntimeVersion(new NuGetVersion("3.0.0-test.12345.qwe")));
Console.WriteLine(GetRuntimeVersion(new NuGetVersion("3.0.0-test.12345.asd.456")));