From b50f4e1d721af2dd5843ddca260ee80cf112b7d1 Mon Sep 17 00:00:00 2001 From: Jeremy Pritts <49847914+ds5678@users.noreply.github.com> Date: Sun, 5 Oct 2025 01:06:35 -0700 Subject: [PATCH] Enable detection of .NET version without TargetFrameworkAttribute (#3580) --- .../Metadata/DotNetCorePathFinderExtensions.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs b/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs index 8e7fdde57..fd620116e 100644 --- a/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs +++ b/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs @@ -100,16 +100,24 @@ namespace ICSharpCode.Decompiler.Metadata // 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 = "2.0"; - if (r.Version >= new Version(4, 2, 1)) + if (r.Version.Major >= 5) { - version = "3.0"; + version = r.Version.ToString(2); } - if (r.Version >= new Version(4, 2, 2)) + else if (r.Version.Major == 4 && r.Version.Minor == 2) { - version = "3.1"; + version = r.Version.Build switch { + <= 0 => "2.0", + 1 => "3.0", + _ => "3.1" + }; + } + else + { + version = "2.0"; } return $".NETCoreApp,Version=v{version}"; }