Starsze wersje platformy usunięte z pakietu
Począwszy od platformy .NET 6, pakiety bibliotek podstawowych nie mogą być już instalowane w projektach, których struktura docelowa jest starsza niż:
- .NET Framework 4.6.1
- .NET Core 3.1
- .NET Standard 2.0
Opis zmiany
Wcześniej można było uaktualnić pakiety do najnowszej wersji, nawet jeśli były używane ze środowiska starszego niż .NET Framework 4.6.1, .NET Core 3.1 lub .NET Standard 2.0. Począwszy od platformy .NET 6, jeśli odwołujesz się do pakietu, którego dotyczy ten wpływ z wcześniejszej platformy, nie możesz już zaktualizować przywoływanego pakietu do najnowszej wersji.
Wprowadzona wersja
.NET 6
Przyczyna wprowadzenia zmiany
Kontynuowanie tworzenia dla wszystkich struktur zwiększa złożoność i rozmiar pakietu. W przeszłości platforma .NET rozwiązała ten problem, tworząc tylko bieżące struktury i zbierając pliki binarne dla starszych platform. Zbieranie oznacza, że podczas kompilacji pobierana jest wcześniejsza wersja pakietu, a pliki binarne są wyodrębniane.
Podczas korzystania ze zebranego pliku binarnego oznacza, że zawsze można aktualizować bez obaw, że struktura została porzucona, oznacza to również, że nie otrzymujesz żadnych poprawek błędów ani nowych funkcji. Innymi słowy, zebranych zasobów nie można obsługiwać. Jest to ukryte, ponieważ możesz aktualizować pakiet do nowszej wersji, mimo że korzystasz z tego samego starego pliku binarnego, który nie jest już aktualizowany.
Począwszy od platformy .NET 6, platforma .NET nie wykonuje już żadnej formy zbierania, aby upewnić się, że wszystkie wysłane zasoby mogą być obsługiwane.
Zalecana akcja
Jeśli projekt jest utrzymywany, ale nie ewoluuje, po prostu nie uaktualnij pakietów, których dotyczy problem. Zazwyczaj nie jest to ogromne przejęcie, ponieważ już zużywasz zamrożony plik binarny.
Jeśli projekt ewoluuje, uaktualnij go do nowszej wersji platformy, na przykład:
- .NET Framework 4.6.1
- .NET Core 3.1
- .NET Standard 2.0
Dotyczy interfejsów API
Następujące pakiety nie są już dostarczane ze starymi strukturami:
- Microsoft.Extensions.DependencyModel
- Microsoft.Win32.Registry.AccessControl
- Microsoft.Win32.SystemEvents
- System.Collections.Niezmienny
- 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. Emocje ion. Kontekście
- System. Emocje ion. Metadanych
- System. Emocje ion. MetadataLoadContext
- System.Runtime. Buforowanie
- 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
Następujące pakiety nie zostaną już zaktualizowane, ponieważ ich implementacja jest teraz częścią platformy .NET 6:
- Microsoft.Win32.Registry
- System.ComponentModel.Annotations
- System.IO.FileSystem.AccessControl
- System.IO.Pipe.AccessControl
- System.Security.AccessControl
- System.Security.Cryptography.Cng
- System.Security.Cryptography.OpenSsl
- System.Security.Principal.Windows