Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Breaking change]: Dropping older framework versions #31399

Closed
2 tasks done
ViktorHofer opened this issue Sep 26, 2022 · 0 comments · Fixed by #31495
Closed
2 tasks done

[Breaking change]: Dropping older framework versions #31399

ViktorHofer opened this issue Sep 26, 2022 · 0 comments · Fixed by #31495
Assignees
Labels
binary incompatible Existing binaries may encounter a breaking change in behavior. breaking-change Indicates a .NET Core breaking change 🏁 Release: .NET 7 Work items for the .NET 7 release doc-idea Indicates issues that are suggestions for new topics [org][type][category] Pri1 High priority, do before Pri2 and Pri3 source incompatible Source code may encounter a breaking change in behavior when targeting the new version.

Comments

@ViktorHofer
Copy link
Member

Description

Starting with .NET 7 Preview 1, installing the core libraries packages into projects whose target framework is older than the following, is no longer supported:

  • .NET Framework 4.6.2
  • .NET 6
  • .NET Standard 2.0

Version

Other (please put exact version in description textbox)

Previous behavior

The latest non-prerelease core libraries packages which are part of the ".NET 6" wave are supported when used from a project targeting .NET Framework 4.6.1, .NET Core 3.1, or .NET Standard 2.0 or above.

New behavior

.NET 7 core libraries packages are supported to be used by projects targeting .NET Framework 4.6.2, .NET 6, .NET Standard 2.0 or newer.

Type of breaking change

  • Binary incompatible: Existing binaries may encounter a breaking change in behavior, such as failure to load/execute or different run-time behavior.
  • Source incompatible: Source code may encounter a breaking change in behavior when targeting the new runtime/component/SDK, such as compile errors or different run-time behavior.

Reason for change

Dropping a framework from a package is a source breaking change. At the same time, continuing to build for all frameworks we ever shipped increases the complexity and size of a package.

Starting with .NET 7, we no longer support frameworks which we previously supported but are now out-of-support:

  • .NET Framework 4.6.1
  • .NET Core 3.1
  • .NET 5

Recommended action

If your project is no longer being evolved but only maintained, simply don't upgrade the impacted packages. If your project is actively evolved, upgrade it to a later framework version to one of the following:

  • .NET Framework 4.6.2
  • .NET Core 6
  • .NET Standard 2.0

Feature area

Core .NET libraries

Affected APIs

These packages no longer ship old frameworks:

  • Microsoft.Bcl.AsyncInterfaces
  • Microsoft.Extensions.Caching.Abstractions
  • Microsoft.Extensions.Caching.Memory
  • Microsoft.Extensions.Configuration
  • Microsoft.Extensions.Configuration.Abstractions
  • Microsoft.Extensions.Configuration.Binder
  • Microsoft.Extensions.Configuration.CommandLine
  • Microsoft.Extensions.Configuration.EnvironmentVariables
  • Microsoft.Extensions.Configuration.FileExtensions
  • Microsoft.Extensions.Configuration.Ini
  • Microsoft.Extensions.Configuration.Json
  • Microsoft.Extensions.Configuration.UserSecrets
  • Microsoft.Extensions.Configuration.Xml
  • Microsoft.Extensions.DependencyInjection
  • Microsoft.Extensions.DependencyInjection.Abstractions
  • Microsoft.Extensions.DependencyInjection.Specification.Tests
  • Microsoft.Extensions.DependencyModel
  • Microsoft.Extensions.FileProviders.Abstractions
  • Microsoft.Extensions.FileProviders.Composite
  • Microsoft.Extensions.FileProviders.Physical
  • Microsoft.Extensions.FileSystemGlobbing
  • Microsoft.Extensions.Hosting
  • Microsoft.Extensions.Hosting.Abstractions
  • Microsoft.Extensions.Hosting.Systemd
  • Microsoft.Extensions.Hosting.WindowsServices
  • Microsoft.Extensions.Http
  • Microsoft.Extensions.Logging
  • Microsoft.Extensions.Logging.Abstractions
  • Microsoft.Extensions.Logging.Configuration
  • Microsoft.Extensions.Logging.Console
  • Microsoft.Extensions.Logging.Debug
  • Microsoft.Extensions.Logging.EventLog
  • Microsoft.Extensions.Logging.EventSource
  • Microsoft.Extensions.Logging.TraceSource
  • Microsoft.Extensions.Options
  • Microsoft.Extensions.Options.ConfigurationExtensions
  • Microsoft.Extensions.Options.DataAnnotations
  • Microsoft.Extensions.Primitives
  • Microsoft.NET.WebAssembly.Threading
  • Microsoft.NETCore.Platforms
  • Microsoft.Win32.Registry.AccessControl
  • Microsoft.Win32.SystemEvents
  • Microsoft.Windows.Compatibility
  • Microsoft.XmlSerializer.Generator
  • System.CodeDom
  • System.Collections.Immutable
  • System.ComponentModel.Composition
  • System.ComponentModel.Composition.Registration
  • System.Composition
  • System.Composition.AttributedModel
  • System.Composition.Convention
  • System.Composition.Hosting
  • System.Composition.Runtime
  • System.Composition.TypedParts
  • System.Configuration.ConfigurationManager
  • System.Data.Odbc
  • System.Data.OleDb
  • System.Diagnostics.DiagnosticSource
  • System.Diagnostics.EventLog
  • System.Diagnostics.PerformanceCounter
  • System.DirectoryServices
  • System.DirectoryServices.AccountManagement
  • System.DirectoryServices.Protocols
  • System.Drawing.Common
  • System.Formats.Asn1
  • System.Formats.Cbor
  • System.IO.Hashing
  • System.IO.Packaging
  • System.IO.Pipelines
  • System.IO.Ports
  • System.Management
  • System.Memory.Data
  • System.Net.Http.Json
  • System.Net.Http.WinHttpHandler
  • System.Numerics.Tensors
  • System.Reflection.Context
  • System.Reflection.Metadata
  • System.Reflection.MetadataLoadContext
  • System.Resources.Extensions
  • System.Runtime.Caching
  • System.Runtime.Serialization.Schema
  • System.Security.Cryptography.Cose
  • System.Security.Cryptography.Pkcs
  • System.Security.Cryptography.ProtectedData
  • System.Security.Cryptography.Xml
  • System.Security.Permissions
  • System.ServiceModel.Syndication
  • System.ServiceProcess.ServiceController
  • System.Speech
  • System.Text.Encoding.CodePages
  • System.Text.Encodings.Web
  • System.Text.Json
  • System.Threading.AccessControl
  • System.Threading.Channels
  • System.Threading.RateLimiting
  • System.Threading.Tasks.Dataflow
  • System.Windows.Extensions
@ViktorHofer ViktorHofer added doc-idea Indicates issues that are suggestions for new topics [org][type][category] breaking-change Indicates a .NET Core breaking change Pri1 High priority, do before Pri2 and Pri3 labels Sep 26, 2022
@dotnet-bot dotnet-bot added ⌚ Not Triaged Not triaged 🏁 Release: .NET 7 Work items for the .NET 7 release binary incompatible Existing binaries may encounter a breaking change in behavior. source incompatible Source code may encounter a breaking change in behavior when targeting the new version. labels Sep 26, 2022
@gewarren gewarren removed the ⌚ Not Triaged Not triaged label Sep 26, 2022
@ghost ghost added the in-pr This issue will be closed (fixed) by an active pull request. label Sep 29, 2022
@ghost ghost removed the in-pr This issue will be closed (fixed) by an active pull request. label Sep 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
binary incompatible Existing binaries may encounter a breaking change in behavior. breaking-change Indicates a .NET Core breaking change 🏁 Release: .NET 7 Work items for the .NET 7 release doc-idea Indicates issues that are suggestions for new topics [org][type][category] Pri1 High priority, do before Pri2 and Pri3 source incompatible Source code may encounter a breaking change in behavior when targeting the new version.
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants