public PackageTargetFramework FindClosestTargetFramework(object inputTargetFramework) { var moniker = (inputTargetFramework ?? "").ToString().Trim().ToLowerInvariant(); var tf = TargetFrameworks.FirstOrDefault(x => x.Moniker == moniker); if (tf != null) { return(tf); } tf = TargetFrameworks.LastOrDefault(x => x.Moniker.StartsWith("netstandard2", StringComparison.Ordinal)); if (tf != null) { return(tf); } tf = TargetFrameworks.LastOrDefault(x => x.Moniker.StartsWith("netstandard", StringComparison.Ordinal)); if (tf != null) { return(tf); } tf = TargetFrameworks.LastOrDefault(x => x.Moniker.StartsWith("net", StringComparison.Ordinal)); if (tf != null) { return(tf); } if (tf == null) { tf = TargetFrameworks.FirstOrDefault(); } return(tf); }