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
NotNullWhenAttributepolyfill compiled only under#if NETSTANDARD2_0 SHA256.ComputeHashfallback widened from#if NETSTANDARD2_1to#if NETSTANDARDnnin[^1]replaced withnnin[Length - 1](ns2.0 lacksSystem.Index)Contains(char)replaced withIndexOf('/') >= 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.TestAdapterto 4.2.3 to matchMSTest.TestFramework, fixing the module-initializerInvalidOperationExceptionthat crashed the test host - Refresh
ConsoleApplicationlock file forMicrosoft.NET.ILLink.Tasks10.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