Skip to content

4.3.0 — netstandard2.0 returns

Latest

Choose a tag to compare

@lduchosal lduchosal released this 17 May 14:48
866f724

Highlights

netstandard2.0 is back

The library targets netstandard2.0 again — consumable from .NET Framework 4.6.1+, .NET Core 2.x, and other ns2.0-compatible runtimes. (ns2.0 was dropped in 4.0; this release restores it without breaking anything else.)

Source changes that made ns2.0 viable:

  • Internal NotNullWhenAttribute polyfill compiled only under #if NETSTANDARD2_0
  • SHA256.ComputeHash fallback widened from #if NETSTANDARD2_1 to #if NETSTANDARD
  • nnin[^1] replaced with nnin[Length - 1] (ns2.0 lacks System.Index)
  • Contains(char) replaced with IndexOf('/') >= 0 (char overload is .NET Core 2.1+)

Windows / net48 quality gate in CI

TestProject now multi-targets net10.0;net48 and a new windows-latest job runs the net48 build directly. This is the only CI path that actually loads the ns2.0 DLL at runtime, so ns2.0-specific regressions get caught before release.

Test execution fixes since 4.2.0

  • Align MSTest.TestAdapter to 4.2.3 to match MSTest.TestFramework, fixing the module-initializer InvalidOperationException that crashed the test host
  • Refresh ConsoleApplication lock file for Microsoft.NET.ILLink.Tasks 10.0.7

TFM resolution for consumers

Consumer runtime Lib resolved from package
.NET Framework 4.6.1 – 4.8.1 netstandard2.0 (new)
.NET Core 2.x netstandard2.0 (new)
.NET Core 3.x, .NET 5/6/7 netstandard2.1
.NET 8 net8.0
.NET 9 net9.0
.NET 10 net10.0

Full changelog: 4.2.0...4.3.0