Baca dalam bahasa Inggris

Bagikan melalui


Versi kerangka kerja yang lebih lama dihilangkan dari paket

Dimulai dengan .NET 6, paket pustaka inti tidak dapat lagi diinstal ke dalam proyek yang kerangka kerja targetnya lebih lama dari:

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

Deskripsi perubahan

Sebelumnya, Anda dapat meningkatkan paket ke versi terbaru, bahkan jika Anda menggunakannya dari kerangka kerja yang lebih lama dari .NET Framework 4.6.1, .NET Core 3.1, atau .NET Standard 2.0. Mulai dari .NET 6, jika Anda merujuk paket yang terkena dampak dari kerangka kerja sebelumnya, Anda tidak dapat lagi memperbarui paket yang direferensikan ke versi terbaru.

Versi yang diperkenalkan

.NET 6

Alasan untuk berubah

Terus membangun untuk semua kerangka kerja meningkatkan kompleksitas dan ukuran paket. Di masa lalu, .NET memecahkan masalah ini dengan membangun hanya untuk kerangka kerja saat ini dan panen biner untuk kerangka kerja yang lebih lama. Panen berarti bahwa selama build, versi paket yang lebih lama diunduh dan biner diekstraksi.

Meskipun mengonsumsi biner yang dipanen berarti Anda selalu dapat memperbarui tanpa khawatir bahwa kerangka kerja dihilangkan, itu juga berarti Bahwa Anda tidak mendapatkan perbaikan bug atau fitur baru. Dengan kata lain, aset yang dipanen tidak dapat dilayankan. Itu disembunyikan dari Anda karena Anda dapat terus memperbarui paket ke versi yang lebih baru meskipun Anda mengonsumsi biner lama yang sama yang tidak lagi diperbarui.

Dimulai dengan .NET 6, .NET tidak lagi melakukan segala bentuk panen untuk memastikan bahwa semua aset yang dikirim dapat dilayankan.

Jika proyek Anda dipertahankan tetapi tidak berkembang, jangan meningkatkan paket yang terkena dampak. Ini umumnya bukan take back yang besar karena Anda sudah mengonsumsi biner beku.

Jika proyek Anda berkembang, tingkatkan ke versi kerangka kerja yang lebih baru, seperti:

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

API yang Terpengaruh

Paket berikut tidak lagi mengirimkan kerangka kerja lama:

  • 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

Paket berikut tidak akan lagi diperbarui karena implementasinya sekarang menjadi bagian dari platform .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