Versions cible de .Net Framework

NuGet utilise les références des versions cibles de .NET Framework à de nombreux endroits pour identifier et isoler spécifiquement les composants dépendants du framework d’un package :

  • fichier projet : pour les projets de style SDK, le fichier .csproj contient les références de versions cibles.
  • Manifeste .nuspec : un package peut désigner des packages distincts à inclure dans un projet en fonction de la version cible de .NET Framework du projet.
  • Nom du dossier .nupkg : les dossiers à l’intérieur du dossier lib d’un package peuvent être nommés en fonction de la version cible de .NET Framework, chacun contenant les DLL et tout autre contenu appropriés pour ce framework.
  • packages.config : l’attribut targetframework d’une dépendance spécifie la variante d’un package à installer.

Remarque

NuGet prend en charge toutes les versions cibles .NET modernes :

Frameworks pris en charge

Un framework est généralement référencé par un moniker du Framework cible ou TFM court. Dans .NET Standard, ceci est également généralisé sous la forme TxM pour permettre une référence unique à plusieurs frameworks.

Remarque

Le code source du client NuGet qui calcule les tableaux ci-dessous se trouve aux emplacements suivants :

Les clients NuGet prennent en charge les frameworks dans le tableau ci-dessous. Les équivalents sont indiqués entre crochets []. Notez que certains outils, tels que dotnet, peuvent utiliser les variantes de monikers TFM canoniques dans certains fichiers. Par exemple, dotnet pack utilise .NETCoreApp2.0 dans un fichier .nuspec plutôt que netcoreapp2.0. Les différents outils du client NuGet gèrent correctement ces variantes, mais vous devez toujours utiliser des monikers TFM canoniques quand vous modifiez directement les fichiers.

Nom Abréviation TFMs/TxMs
.NET Framework net net11
net20
net35
net40
net403
net45
net451
net452
net46
net461
net462
net47
net471
net472
net48
Microsoft Store (Windows Store) netcore netcore [netcore45]
netcore45 [win, win8]
netcore451 [win81]
netcore50
.NET MicroFramework netmf netmf
Windows win win [win8, netcore45]
win8 [netcore45, win]
win81 [netcore451]
win10 (non pris en charge par la plateforme Windows 10)
Silverlight sl sl4
sl5
Windows Phone (SL) wp wp [wp7]
wp7
wp75
wp8
wp81
Windows Phone (UWP) wpa81
Plateforme Windows universelle uap uap [uap10.0]
uap10.0
uap10.0.xxxxx (où 10.0.xxxxx est la version minimale de plateforme cible de l’application consommatrice)
.NET Standard netstandard netstandard1.0
netstandard1.1
netstandard1.2
netstandard1.3
netstandard1.4
netstandard1.5
netstandard1.6
netstandard2.0
netstandard2.1
.NET 5+ (et .NET Core) netcoreapp netcoreapp1.0
netcoreapp1.1
netcoreapp2.0
netcoreapp2.1
netcoreapp2.2
netcoreapp3.0
netcoreapp3.1
net net5.0
net6.0
net7.0
net8.0
Tizen tizen tizen3
tizen4
Natif native native

Frameworks dépréciés

Les frameworks suivants sont dépréciés. Les packages ciblant ces frameworks doivent migrer vers les versions de remplacement indiquées.

Framework déprécié Remplacement
aspnet50 netcoreapp
aspnetcore50
dnxcore50
dnx
dnx45
dnx451
dnx452
dotnet netstandard
dotnet50
dotnet51
dotnet52
dotnet53
dotnet54
dotnet55
dotnet56
winrt win

Priorité

Un certain nombre de frameworks sont liés et compatibles entre eux, mais sans être nécessairement équivalents :

Infrastructure Peut utiliser
uap (Plateforme Windows universelle) win81
wpa81
netcore50
win (Microsoft Store) winrt

.NET Standard

.NET Standard simplifie les références entre les frameworks compatibles au niveau binaire, ce qui permet à un même framework cible de référencer une combinaison d’autres frameworks. (Pour obtenir des informations générales, consultez le Guide de .NET.)

L’outil Get Nearest Framework Nuget simule ce que NuGet utilise pour la sélection d’un framework à partir de nombreuses ressources de framework disponibles dans un package, en fonction du framework du projet.

La série dotnet des monikers doit être utilisée dans NuGet 3.3 et versions antérieures ; la syntaxe de moniker netstandard doit être utilisée dans v3.4 et versions ultérieures.

Bibliothèques de classes portables

Avertissement

Les bibliothèques de classes portables ne sont pas recommandées. Même si elles sont prises en charge, les auteurs de packages doivent prendre en charge netstandard à la place. .NET Standard Platform est une évolution des bibliothèques de classes portables et représente la portabilité binaire entre les plateformes à l’aide d’un moniker unique qui n’est pas lié à une bibliothèque statique comme les monikers portable-a+b+c.

Pour définir une version cible de .NET Framework qui fait référence à plusieurs frameworks-cibles-enfants, le mot clé portable est utilisé pour préfixer la liste des frameworks référencés. Évitez d’inclure artificiellement des frameworks supplémentaires qui ne sont pas directement compilés, car cela peut aboutir à des effets secondaires inattendus dans ces frameworks.

D’autres frameworks définis par des tiers assurent la compatibilité avec d’autres environnements qui sont accessibles de cette manière. De plus, il existe des numéros de profil abrégés qui sont disponibles pour faire référence à ces combinaisons de frameworks connexes en tant que Profile#, mais l’utilisation de ces numéros n’est pas recommandée, car cela réduit la lisibilité des dossiers et de .nuspec.

Numéro de profil Frameworks Nom complet .NET Standard
Profile2 .NETFramework 4.0 portable-net40+win8+sl4+wp7
Windows 8.0
Silverlight 4.0
WindowsPhone 7.0
Profile3 .NETFramework 4.0 portable-net40+sl4
Silverlight 4.0
Profile4 .NETFramework 4.5 portable-net45+sl4+win8+wp7
Silverlight 4.0
Windows 8.0
WindowsPhone 7.0
Profile5 .NETFramework 4.0 portable-net40+win8
Windows 8.0
Profile6 .NETFramework 4.0.3 portable-net403+win8
Windows 8.0
Profile7 .NETFramework 4.5 portable-net45+win8 netstandard1.1
Windows 8.0
Profile14 .NETFramework 4.0 portable-net40+sl5
Silverlight 5.0
Profile18 .NETFramework 4.0.3 portable-net403+sl4
Silverlight 4.0
Profile19 .NETFramework 4.0.3 portable-net403+sl5
Silverlight 5.0
Profile23 .NETFramework 4.5 portable-net45+sl4
Silverlight 4.0
Profile24 .NETFramework 4.5 portable-net45+sl5
Silverlight 5.0
Profile31 Windows 8.1 portable-win81+wp81 netstandard1.0
WindowsPhone 8.1 (SL)
Profile32 Windows 8.1 portable-win81+wpa81 netstandard1.2
WindowsPhone 8.1 (UWP)
Profile36 .NETFramework 4.0 portable-net40+sl4+win8+wp8
Silverlight 4.0
Windows 8.0
WindowsPhone 8.0 (SL)
Profile37 .NETFramework 4.0 portable-net40+sl5+win8
Silverlight 5.0
Windows 8.0
Profile41 .NETFramework 4.0.3 portable-net403+sl4+win8
Silverlight 4.0
Windows 8.0
Profile42 .NETFramework 4.0.3 portable-net403+sl5+win8
Silverlight 5.0
Windows 8.0
Profile44 .NETFramework 4.5.1 portable-net451+win81 netstandard1.2
Windows 8.1
Profile46 .NETFramework 4.5 portable-net45+sl4+win8
Silverlight 4.0
Windows 8.0
Profile47 .NETFramework 4.5 portable-net45+sl5+win8
Silverlight 5.0
Windows 8.0
Profile49 .NETFramework 4.5 portable-net45+wp8 netstandard1.0
WindowsPhone 8.0 (SL)
Profile78 .NETFramework 4.5 portable-net45+win8+wp8 netstandard1.0
Windows 8.0
WindowsPhone 8.0 (SL)
Profile84 WindowsPhone 8.1 portable-wp81+wpa81 netstandard1.0
WindowsPhone 8.1 (UWP)
Profile88 .NETFramework 4.0 portable-net40+sl4+win8+wp75
Silverlight 4.0
Windows 8.0
WindowsPhone 7.5
Profile92 .NETFramework 4.0 portable-net40+win8+wpa81
Windows 8.0
WindowsPhone 8.1 (UWP)
Profile95 .NETFramework 4.0.3 portable-net403+sl4+win8+wp7
Silverlight 4.0
Windows 8.0
WindowsPhone 7.0
Profile96 .NETFramework 4.0.3 portable-net403+sl4+win8+wp75
Silverlight 4.0
Windows 8.0
WindowsPhone 7.5
Profile102 .NETFramework 4.0.3 portable-net403+win8+wpa81
Windows 8.0
WindowsPhone 8.1 (UWP)
Profile104 .NETFramework 4.5 portable-net45+sl4+win8+wp75
Silverlight 4.0
Windows 8.0
WindowsPhone 7.5
Profile111 .NETFramework 4.5 portable-net45+win8+wpa81 netstandard1.1
Windows 8.0
WindowsPhone 8.1 (UWP)
Profile136 .NETFramework 4.0 portable-net40+sl5+win8+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.0 (SL)
Profile143 .NETFramework 4.0.3 portable-net403+sl4+win8+wp8
Silverlight 4.0
Windows 8.0
WindowsPhone 8.0 (SL)
Profile147 .NETFramework 4.0.3 portable-net403+sl5+win8+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.0 (SL)
Profile151 NETFramework 4.5.1 portable-net451+win81+wpa81 netstandard1.2
Windows 8.1
WindowsPhone 8.1 (UWP)
Profile154 .NETFramework 4.5 portable-net45+sl4+win8+wp8
Silverlight 4.0
Windows 8.0
WindowsPhone 8.0 (SL)
Profile157 Windows 8.1 portable-win81+wp81+wpa81 netstandard1.0
WindowsPhone 8.1 (SL)
WindowsPhone 8.1 (UWP)
Profile158 .NETFramework 4.5 portable-net45+sl5+win8+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.0 (SL)
Profile225 .NETFramework 4.0 portable-net40+sl5+win8+wpa81
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
Profile240 .NETFramework 4.0.3 portable-net403+sl5+win8+wpa8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
Profile255 .NETFramework 4.5 portable-net45+sl5+win8+wpa81
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
Profile259 .NETFramework 4.5 portable-net45+win8+wpa81+wp8 netstandard1.0
Windows 8.0
WindowsPhone 8.1 (UWP)
WindowsPhone 8.0 (SL)
Profile328 .NETFramework 4.0 portable-net40+sl5+win8+wpa81+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
WindowsPhone 8.0 (SL)
Profile336 .NETFramework 4.0.3 portable-net403+sl5+win8+wpa81+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
WindowsPhone 8.0 (SL)
Profile344 .NETFramework 4.5 portable-net45+sl5+win8+wpa81+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
WindowsPhone 8.0 (SL)

De plus, les packages NuGet ciblant Xamarin peuvent utiliser d’autres frameworks définis par Xamarin. Consultez Création de packages NuGet pour Xamarin.

Nom Description .NET Standard
monoandroid Prise en charge mono pour le système d’exploitation Android netstandard1.4
monotouch Prise en charge mono pour iOS netstandard1.4
monomac Prise en charge mono pour OSX netstandard1.4
xamarinios Prise en charge pour Xamarin pour iOS netstandard1.4
xamarinmac Prise en charge pour Xamarin pour Mac netstandard1.4
xamarinpsthree Prise en charge pour Xamarin sur Playstation 3 netstandard1.4
xamarinpsfour Prise en charge pour Xamarin sur Playstation 4 netstandard1.4
xamarinpsvita Prise en charge pour Xamarin sur PS Vita netstandard1.4
xamarinwatchos Xamarin pour le système d’exploitation Watch netstandard1.4
xamarintvos Xamarin pour le système d’exploitation TV netstandard1.4
xamarinxboxthreesixty Xamarin pour XBox 360 netstandard1.4
xamarinxboxone Xamarin pour XBox One netstandard1.4

Remarque

Stephen Cleary a créé un outil qui répertorie les bibliothèques de classes portables prises en charge, que vous pouvez trouver sur son blog, Framework profiles in .NET.