Browse Source

Support detecting .NET Core 1.0 and 1.1

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

30
ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs

@ -97,28 +97,24 @@ namespace ICSharpCode.Decompiler.Metadata @@ -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

Loading…
Cancel
Save