.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 (マイクロソフト.Win32レジストリ.アクセス制御)
- 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
.NET