Skip to content

Latest commit

 

History

History
63 lines (44 loc) · 10.7 KB

package-support-policy.md

File metadata and controls

63 lines (44 loc) · 10.7 KB

Package support policy for maintenance-packages

As it has been described in the .NET Release policies document, .NET library packages provide additional functionality that complements the .NET libraries and application frameworks like ASP.NET Core. The library packages have the same support model as the .NET versions that they target.

For example, Microsoft.Extensions.Logging supports multiple .NET versions via the frameworks it targets.

Our packages support any target framework versions that are currently in-support. You can find out which frameworks are supported by a specific package by visiting its NuGet page and navigating to the frameworks tab.

Additionally, you can find out which target frameworks are currently in-support by visiting the following pages:

Keep in mind that the minimum .NET Standard version supported by a package depends on which minimum .NET and .NET Framework versions are supported by the package. Packages and projects targeting .NET Standard are expected to be compatible between each other by following the same rules specified by our .NET Standard policy.

Release cadence

Some packages follow the same release cadence as the .NET release cadence, meaning we release a new version of the package each time we release a new .NET version. For example:

Note that the source code of those two packages lives in the dotnet/runtime repo.

On the other hand, the packages that come out from the dotnet/maintenance-packages repo have a separate, independent release cadence, meaning their servicing releases will come out of this repo and will not be bound by any pre-defined release schedule.

End of support

A package will be supported for as long as it targets frameworks that are still supported. For example: System.Numerics.Vectors is supported because it provides an implementation on .NET Framework 4.6.2, which is still in support.

Reporting issues

If you find an issue in an assembly that lives in this repo, please report it in our central repo: https://github.com/dotnet/runtime/issues/new/choose.

Should I consume this package? Which version should I consume?

Please refer to the table below to:

  • Learn if a package is still supported and in which target frameworks.
  • Learn what action you should take if you're actively consuming one of these packages:
    • Remove the package reference from your projects.
    • Update to the latest package version.
    • Migrate to another library.
    • Something else.
Package Support Supported where and why? Actions to take
Microsoft.Bcl.HashCode Yes
  • .NET Framework 4.6.2+: Provides the implementation of HashCode.
  • .NET 6+: The type is already part of the shared framework.
  • .NET Framework 4.6.2+: Update.
  • .NET 6+: Remove.
Microsoft.CSharp Limited
  • .NET Standard 2.0: Only used as a reference. Other uses are not supported.
  • .NET Framework 4.6.2+ and .NET 6+: The library is already part of the shared framework.
  • .NETStandard 2.0: Update.
  • .NET Framework 4.6.2+ and .NET 6+: Remove.
Microsoft.IO.Redist Limited Intended for internal use only, not for general use. Use the equivalent System.IO APIs instead, which are part of the shared framework in all supported frameworks. Remove.
System.Buffers Yes
  • .NET Framework 4.6.2+: Provides the implementation of ArrayPool<T>.
  • .NET 6+: The type is part of the shared framework.
  • .NET Framework 4.6.2+: Update.
  • .NET 6+: Remove.
System.Data.SqlClient Limited
  • .NET Framework 4.6.2+: The library is part of the shared framework.
  • .NET 8: Marked as obsolete, but supported until .NET 8 goes EOL.
  • All other frameworks: Not supported.
  • .NET Framework 4.6.2+: Remove.
  • .NET 8: System.Data.SqlClient is obsolete. Consider migrating to Microsoft.Data.SqlClient.
  • All other frameworks: Remove and migrate to Microsoft.Data.SqlClient.
System.Diagnostics.Tracing No EventSource is part of the shared framework in all supported frameworks. Remove.
System.Json Limited The assembly targets in-support frameworks but it was designed for Silverlight, which is no longer supported. Use System.Text.Json instead, which is actively maintained. Remove.
System.Memory Yes
  • .NET Framework 4.6.2+: Update.
  • .NET 6+: Remove.
System.Net.WebSockets.WebSocketProtocol Yes The assembly targets in-support frameworks but the package was only needed in ASP.NET applications targeting .NET Standard 2.0 which required to use implementations provided in the package. These implementations are no longer required in currently supported frameworks. Remove.
System.Numerics.Vectors Yes
  • .NET Framework 4.6.2+ and .NET Standard 2.0: Update.
  • .NET 6+: Remove.
System.Reflection.DispatchProxy Yes
  • .NET Framework 4.6.2+: Provides an implementation of DispatchProxy.
  • .NET 6+: The type is part of the shared framework.
  • .NET Framework 4.6.2+: Update.
  • .NET 6+: Remove.
System.Runtime.CompilerServices.Unsafe Yes
  • .NET Framework 4.6.2+: Provides the implementation of Unsafe.
  • .NET 6+: The type is part of the shared framework
  • .NET Framework 4.6.2+: Update.
  • .NET 6+: Remove.
System.Runtime.WindowsRuntime No Built-in support for WinRT has been removed from .NET.
Follow the recommended actions.
Remove.
System.Runtime.WindowsRuntime.UI.Xaml No Built-in support for WinRT has been removed from .NET.
Follow the recommended actions.
Remove.
System.Threading.Tasks.Extensions Yes
  • .NET Framework 4.6.2+: Provides implementations of ValueTask and ValueTask<TResult>.
  • .NET 6+: The types are already part of the shared framework.
  • .NET Framework 4.6.2+: Update.
  • .NET 6+: Remove.
System.Xml.XPath.XmlDocument Limited Provides the implementation of the XmlDocumentXPathExtensions extension methods. It is recommended that you call the extended APIs directly. Only use the package if you absolutely need to use the extension methods. Remove.