diff --git a/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs b/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs index fd620116e..df2988673 100644 --- a/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs +++ b/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs @@ -97,28 +97,24 @@ namespace ICSharpCode.Decompiler.Metadata return $".NETStandard,Version=v{version}"; case "System.Runtime": // System.Runtime.dll uses the following scheme: + // 4.1.0 => .NET Core 1.0 + // 4.1.1 => .NET Core 1.1 // 4.2.0 => .NET Core 2.0 // 4.2.1 => .NET Core 2.1 / 3.0 // 4.2.2 => .NET Core 3.1 // 5.0.0+ => .NET 5+ - if (r.Version >= new Version(4, 2, 0)) + version = (r.Version.Major, r.Version.Minor, r.Version.Build) switch + { + (4, 1, 0) => "1.0", + (4, 1, 1) => "1.1", + (4, 2, 0) => "2.0", + (4, 2, 1) => "3.0", + (4, 2, 2) => "3.1", + (>= 5, _, _) => r.Version.ToString(2), + _ => null + }; + if (version != null) { - if (r.Version.Major >= 5) - { - version = r.Version.ToString(2); - } - else if (r.Version.Major == 4 && r.Version.Minor == 2) - { - version = r.Version.Build switch { - <= 0 => "2.0", - 1 => "3.0", - _ => "3.1" - }; - } - else - { - version = "2.0"; - } return $".NETCoreApp,Version=v{version}"; } else