パッケージから削除された古いバージョンのフレームワーク

.NET 6 以降では、ターゲット フレームワークが以下のものより古いプロジェクトには、コア ライブラリ パッケージをインストールできなくなりました。

  • .NET Framework 4.6.1
  • .NET Core 3.1
  • .NET Standard 2.0

変更内容

以前は、.NET Framework 4.6.1、.NET Core 3.1、または .NET Standard 2.0 より古いフレームワークから使用している場合であっても、パッケージを最新バージョンにアップグレードできました。 .NET 6 以降では、影響を受けるパッケージを以前のフレームワークから参照している場合、参照されているパッケージを最新バージョンに更新できなくなりました。

導入されたバージョン

.NET 6

変更理由

引き続きすべてのフレームワークでビルドできるようにすると、パッケージの複雑さとサイズが増します。 これまで、この問題は、.NET により、現在のフレームワークについてのみビルドし、古いフレームワークについてはバイナリを "収集する" ことによって解決されました。 収集とは、ビルドの間に、以前のバージョンのパッケージをダウンロードし、バイナリを抽出することを意味します。

収集されたバイナリを使用すると、フレームワークが削除されることを心配せずにいつでも更新できますが、バグ修正や新機能は提供されません。 つまり、収集された資産ではサービスを提供できません。 更新されなくなった同じ古いバイナリを使用している場合でも、パッケージを新しいバージョンに更新することができるため、これはユーザーには表示されません。

.NET 6 以降では、出荷されるすべての資産を提供できるようにするため、.NET ではいかなる形式の収集も実行されなくなりました。

プロジェクトが維持されていても進化していない場合は、影響を受けるパッケージをアップグレードしないだけです。 固定されたバイナリを既に使用しているので、これは一般に大きな後戻りではありません。

プロジェクトが進化している場合は、次のような新しいフレームワーク バージョンにアップグレードします。

  • .NET Framework 4.6.1
  • .NET Core 3.1
  • .NET Standard 2.0

影響を受ける API

次のパッケージでは、古いフレームワークは出荷されなくなりました。

  • Microsoft.Extensions.DependencyModel
  • Microsoft.Win32.Registry.AccessControl
  • Microsoft.Win32.SystemEvents
  • System.Collections.Immutable
  • System.ComponentModel.Annotations
  • System.ComponentModel.Composition
  • System.ComponentModel.Composition.Registration
  • System.Composition.AttributedModel
  • System.Composition.Convention
  • System.Composition.Hosting
  • System.Composition.Runtime
  • System.Composition.TypedParts
  • 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.IO.Packaging
  • System.IO.Pipelines
  • System.Management
  • System.Net.Http.WinHttpHandler
  • System.Net.WebSockets.WebSocketProtocol
  • System.Numerics.Tensors
  • System.Reflection.Context
  • System.Reflection.Metadata
  • System.Reflection.MetadataLoadContext
  • System.Runtime.Caching
  • System.Runtime.CompilerServices.Unsafe
  • System.Security.Cryptography.Cng
  • System.Security.Cryptography.OpenSsl
  • System.Security.Cryptography.Pkcs
  • System.Security.Cryptography.ProtectedData
  • System.Security.Permissions
  • System.ServiceProcess.ServiceController
  • System.Speech
  • System.Text.Encoding.CodePages
  • System.Text.Encodings.Web
  • System.Threading.AccessControl
  • System.Threading.Channels
  • System.Threading.Tasks.Dataflow
  • System.Windows.Extensions

次のパッケージは、実装が .NET 6 プラットフォームの一部になったため、今後は更新されません。

  • Microsoft.Win32.Registry
  • System.ComponentModel.Annotations
  • System.IO.FileSystem.AccessControl
  • System.IO.Pipes.AccessControl
  • System.Security.AccessControl
  • System.Security.Cryptography.Cng
  • System.Security.Cryptography.OpenSsl
  • System.Security.Principal.Windows