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:
- .NET: https://dotnet.microsoft.com/en-us/platform/support/policy
- .NET Framework: https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-framework
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.
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:
- System.Text.Json, which is part of the shared framework, but is also available as a NuGet package.
- Microsoft.Extensions.Configuration.Abstractions, which is exclusively released as a NuGet package.
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.
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.
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.
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 |
|
|
Microsoft.CSharp | Limited |
|
|
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 |
|
|
System.Data.SqlClient | Limited |
|
|
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 |
|
|
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 |
|
|
System.Reflection.DispatchProxy | Yes |
|
|
System.Runtime.CompilerServices.Unsafe | Yes |
|
|
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 |
|
|
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. |