Versions antérieures du framework supprimées du package
À partir de .NET 6, les paquets de bibliothèques de base ne peuvent plus être installés dans des projets dont le framework cible est antérieur à :
- .NET Framework 4.6.1
- .NET Core 3.1
- .NET Standard 2.0
Description de la modification
Auparavant, vous pouviez mettre à niveau les paquets vers la dernière version même si vous les utilisiez à partir d'un framework plus ancien que .NET Framework 4.6.1, .NET Core 3.1 ou .NET Standard 2.0. À partir de .NET 6, si vous faites référence à un paquet impacté d'une structure antérieure, vous ne pouvez plus mettre à jour le paquet référencé vers la dernière version.
Version introduite
.NET 6
Raison du changement
Poursuivre la construction pour tous les frameworks augmente la complexité et la taille d'un paquet. Auparavant, .NET résolvait ce problème en ne construisant que pour les frameworks actuels et en collectant les binaires des anciens frameworks. Le terme « récolte » signifie que, pendant la construction, la version précédente du paquet est téléchargée et les binaires sont extraits.
Si l'utilisation d'un binaire récolté signifie que vous pouvez toujours mettre à jour sans vous soucier de la perte d'un framework, cela signifie également que vous ne bénéficiez pas des correctifs ou des nouvelles fonctionnalités. En d'autres termes, les ressources récoltées ne peuvent pas être gérées. Vous ne pouvez pas le savoir, car vous pouvez continuer à mettre à jour le paquet vers une version ultérieure même si vous consommez le même ancien binaire qui n'est plus mis à jour.
À partir de .NET 6, .NET n'effectue plus aucune forme de récolte pour s'assurer que toutes les ressources expédiées peuvent être gérées.
Action recommandée
Si votre projet est maintenu mais n'évolue pas, il suffit de ne pas mettre à niveau les paquets concernés. Cela ne constitue généralement pas une grande surcharge de travail, car vous consommez déjà un binaire gelé.
Si votre projet évolue, mettez-le à niveau avec une version plus récente du framework, par exemple :
- .NET Framework 4.6.1
- .NET Core 3.1
- .NET Standard 2.0
API affectées
Les packages suivants ne prennent plus en charge les anciens frameworks :
- 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
Les paquets suivants ne seront plus mis à jour, car leur implémentation fait désormais partie du framework .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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour