Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
NuGet utilise des références de framework cible à divers endroits pour identifier et isoler spécifiquement les composants dépendants de l’infrastructure d’un package :
- fichier projet : pour les projets de style SDK, .csproj contient les références de framework cible.
- Manifeste .nuspec : un package peut indiquer des packages distincts à inclure dans un projet en fonction du framework cible du projet.
-
Nom du dossier .nupkg : les dossiers à l’intérieur du dossier d’un
libpackage peuvent être nommés en fonction du framework cible, chacun contenant les DLL et d’autres contenus appropriés à cette infrastructure. -
packages.config: l’attribut
targetframeworkd’une dépendance spécifie la variante d’un package à installer.
Pour obtenir la liste canonique de tous les frameworks cibles pris en charge et leur syntaxe TFM, consultez Les frameworks cibles dans les projets de style SDK.
Les valeurs TargetFramework sont des alias
La TargetFramework propriété d’un fichier projet est un nom convivial , un alias, qui est traduit en une identité de framework canonique. Le Kit de développement logiciel (SDK) .NET effectue cette traduction en définissant le TargetFrameworkMoniker (TFM) et, le cas échéant, les TargetPlatformMoniker propriétés.
Par exemple, lorsque vous écrivez <TargetFramework>net10.0-windows</TargetFramework>, le Kit de développement logiciel (SDK) .NET le traduit en :
TargetFrameworkMoniker=.NETCoreApp,Version=v10.0TargetPlatformMoniker=Windows,Version=7.0
NuGet utilise ces propriétés moniker, et non la TargetFramework chaîne, pour les vérifications de compatibilité des packages. Cela signifie que la TargetFramework valeur elle-même peut être n’importe quelle chaîne, tant que les propriétés de moniker sont définies correctement. Par exemple, le projet suivant est valide :
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>banana</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'banana' ">
<TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v10.0</TargetFrameworkVersion>
<TargetFrameworkMoniker>.NETCoreApp,Version=v10.0</TargetFrameworkMoniker>
</PropertyGroup>
</Project>
Ce projet restaure et génère pour .NET 10.0, même si la TargetFramework valeur est banana. Le Kit de développement logiciel (SDK) .NET s’appuie déjà sur ce mécanisme d’alias pour les tfMs spécifiques au système d’exploitation et net8.0-iosnet8.0-android, où le TFM court est traduit en moniker complet avec des informations de plateforme.
Ciblage multiple avec des frameworks en double
À compter de NuGet 7.6 / .NET SDK 10.0.300, plusieurs TargetFrameworks alias peuvent être résolus dans le même framework efficace. Cela permet des scénarios tels que les builds multi-RID et le ciblage d’extension multiversion. Pour plus d’informations sur l’utilisation de la restauration, du pack, du verrouillage des fichiers et des références de projet, consultez Ciblage de plusieurs frameworks.
Frameworks pris en charge
Un framework est généralement référencé par un moniker de framework cible court ou TFM. Dans .NET Standard, il est également généralisé à TxM pour permettre une référence unique à plusieurs frameworks.
Note
Le code source du client NuGet qui calcule les tableaux ci-dessous se trouve à l’emplacement suivant :
- Noms d’infrastructure pris en charge : FrameworkConstants.cs
- Priorité et mappage de l’infrastructure : DefaultFrameworkMappings.cs
Les clients NuGet prennent en charge les frameworks dans le tableau ci-dessous. Les équivalents sont affichés entre crochets []. Notez que certains outils, tels que dotnet, peuvent utiliser des variantes de tfms canoniques dans certains fichiers. Par exemple, dotnet pack les utilisations .NETCoreApp2.0 dans un .nuspec fichier plutôt que netcoreapp2.0dans . Les différents outils clients NuGet gèrent ces variantes correctement, mais vous devez toujours utiliser des tfms canoniques lors de la modification des fichiers directement.
| Nom | Abréviation | TFMs/TxMs |
|---|---|---|
| .NET Framework | filet | 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 | ||
| MicroFramework .NET | netmf | netmf |
| Fenêtres | gagner | 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 | ||
| filet | net5.0 | |
| net6.0 | ||
| net7.0 | ||
| net8.0 | ||
| net9.0 | ||
| net10.0 | ||
| Tizen | tizen | tizen3 |
| tizen4 | ||
| Natif | natif | natif |
Infrastructures déconseillées
Les infrastructures suivantes sont déconseillées. Les packages ciblant ces frameworks doivent migrer vers les remplacements indiqués.
| Infrastructure déconseillée | Remplacement |
|---|---|
| aspnet50 | netcoreapp |
| aspnetcore50 | |
| dnxcore50 | |
| Dnx | |
| dnx45 | |
| dnx451 | |
| dnx452 | |
| dotnet | netstandard |
| dotnet50 | |
| dotnet51 | |
| dotnet52 | |
| dotnet53 | |
| dotnet54 | |
| dotnet55 | |
| dotnet56 | |
| winrt | gagner |
Priorité
Un certain nombre de frameworks sont liés et compatibles les uns avec les autres, mais pas nécessairement équivalents :
| Cadre | 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 binaires, ce qui permet à un framework cible unique de référencer une combinaison d’autres. (Pour plus d’informations, consultez .NET Primer.)
L’outil NuGet Get Nearest Framework simule ce que NuGet utilise pour sélectionner une infrastructure parmi de nombreuses ressources d’infrastructure disponibles dans un package basé sur l’infrastructure du projet.
La dotnet série de monikers doit être utilisée dans NuGet 3.3 et versions antérieures ; la netstandard syntaxe de moniker doit être utilisée dans la version 3.4 et ultérieure.
Bibliothèques de classes portables
Avertissement
Les listes de contrôle d’accès réseau ne sont pas recommandées. Bien que les listes de contrôle d’accès réseau soient prises en charge, les auteurs de packages doivent prendre en charge netstandard à la place. .NET Platform Standard est une évolution des PCL et représente la portabilité binaire entre les plateformes à l’aide d’un seul moniker qui n’est pas lié à une bibliothèque statique comme les monikers portable-a+b+c .
Pour définir une infrastructure cible qui fait référence à plusieurs frameworks cibles enfants, le portable mot clé utilisé pour préfixer la liste des frameworks référencés. Évitez d’inclure artificiellement des infrastructures supplémentaires qui ne sont pas directement compilées, car elles peuvent entraîner des effets secondaires inattendus dans ces infrastructures.
Les infrastructures supplémentaires définies par des tiers fournissent une compatibilité avec d’autres environnements accessibles de cette façon. En outre, il existe des numéros de profil abrégés qui sont disponibles pour référencer ces combinaisons de frameworks connexes, Profile#mais il n’est pas recommandé d’utiliser ces nombres car il réduit la lisibilité des dossiers et .nuspec.
| Profil # | Frameworks | Nom complet | .NET Standard |
|---|---|---|---|
| Profil2 | . 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 | |||
| Profil19 | . 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) |
En outre, les packages NuGet ciblant Xamarin peuvent utiliser des frameworks Xamarin supplémentaires :
| Nom | Description | .NET Standard |
|---|---|---|
| monoandroid | Prise en charge mono du système d’exploitation Android | netstandard1.4 |
| monotouche | Prise en charge mono pour iOS | netstandard1.4 |
| monomac | Prise en charge de Mono pour OSX | netstandard1.4 |
| xamarinios | Prise en charge de Xamarin pour iOS | netstandard1.4 |
| xamarinmac | Prise en charge de Xamarin pour Mac | netstandard1.4 |
| xamarinpsthree | Prise en charge de Xamarin sur Playstation 3 | netstandard1.4 |
| xamarinpsfour | Prise en charge de Xamarin sur Playstation 4 | netstandard1.4 |
| xamarinpsvita | Prise en charge de 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 |
Note
Stephen Cleary a créé un outil qui répertorie les LISTES de contrôle d’accès réseau prises en charge, que vous trouverez sur ses profils post-Framework dans .NET.