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.
Une bibliothèque ne peut pas utiliser directement les API absentes de sa cible de compilation. FSharp.Core 11 ajoute une build net10.0 aux côtés de netstandard2.0 et netstandard2.1 afin de pouvoir utiliser des API .NET modernes sans abandonner la prise en charge des anciennes cibles.
API et comportement spécifiques à la cible
Les builds peuvent exposer différentes API et implémentations. La décision de ciblage sélectionne explicitement la cible moderne ; elle ne suit pas automatiquement la cible de développement du compilateur.
Quel build votre projet utilise
NuGet sélectionne le composant compatible le plus proche pour chaque cible de projet. Les projets .NET 10 et versions ultérieures peuvent sélectionner lib/net10.0/FSharp.Core.dll ; les anciennes cibles compatibles sélectionnent une ressource .NET Standard.
Pour diagnostiquer la disponibilité :
- Vérifiez la version résolue du package FSharp.Core.
- Inspectez les ressources de compilation et d’exécution sélectionnées dans
obj/project.assets.json. - Vérifiez le runtime qui exécute l’application, et non seulement ses assemblys de référence.
<LangVersion>preview</LangVersion> permet le comportement du compilateur. Il n’ajoute pas de membres Core manquants, ne sélectionne pas une ressource de package différente et ne fournit pas une prise en charge du runtime.
Exemples de différences
| Area | Disponibilité dans Core 11 |
|---|---|
| Helpers ValueTask et surcharges associées | Disponible dans netstandard2.1 et net10.0, non netstandard2.0. |
Préservation des limites Array2D.map, mapi et copy |
Cette build net10.0 utilise une API d’allocation .NET plus récente ; les builds .NET Standard conservent leur solution de repli. |
| intrinsics de retour runtime asynchrones | Exposé par la net10.0 compilation ; les exigences du compilateur, du langage, de la référence et du runtime s’appliquent également. |
Pour plus d’informations, consultez fonctions Async et de tâche et Array2D et AOT natif. Les helpers Async/Task ordinaires et print/printn sont disponibles dans les trois builds.
F# interactif et libération asynchrone
Les expressions de tâche F# prennent déjà en charge les ressources IAsyncDisposable dans les projets compilés compatibles. Le correctif d’empaquetage F# 11 fournit la version moderne de Core à F# Interactive de sorte que le code use et use! équivalent fonctionne également là-bas. Mettez à jour l’ensemble d’outils, et non seulement la référence de package d’une application.
Le runtime async est un contrat d’exécution distinct
La cible de la build Core net10.0 ne prend pas en charge le support runtime-async. Suivez les exigences distinctes du compilateur, de référence et d’exécution dans Runtime async experiments.