Browse Source

Support detecting .NET Core 1.0 and 1.1

pull/3581/head
ds5678 6 months ago committed by Jeremy Pritts
parent
commit
d0f5aafb5f
  1. 28
      ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs

28
ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs

@ -97,28 +97,24 @@ namespace ICSharpCode.Decompiler.Metadata
return $".NETStandard,Version=v{version}"; return $".NETStandard,Version=v{version}";
case "System.Runtime": case "System.Runtime":
// System.Runtime.dll uses the following scheme: // 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.0 => .NET Core 2.0
// 4.2.1 => .NET Core 2.1 / 3.0 // 4.2.1 => .NET Core 2.1 / 3.0
// 4.2.2 => .NET Core 3.1 // 4.2.2 => .NET Core 3.1
// 5.0.0+ => .NET 5+ // 5.0.0+ => .NET 5+
if (r.Version >= new Version(4, 2, 0)) version = (r.Version.Major, r.Version.Minor, r.Version.Build) switch
{ {
if (r.Version.Major >= 5) (4, 1, 0) => "1.0",
{ (4, 1, 1) => "1.1",
version = r.Version.ToString(2); (4, 2, 0) => "2.0",
} (4, 2, 1) => "3.0",
else if (r.Version.Major == 4 && r.Version.Minor == 2) (4, 2, 2) => "3.1",
{ (>= 5, _, _) => r.Version.ToString(2),
version = r.Version.Build switch { _ => null
<= 0 => "2.0",
1 => "3.0",
_ => "3.1"
}; };
} if (version != null)
else
{ {
version = "2.0";
}
return $".NETCoreApp,Version=v{version}"; return $".NETCoreApp,Version=v{version}";
} }
else else

Loading…
Cancel
Save