Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Biblioteka nie może bezpośrednio korzystać z interfejsów API nieobecnych w docelowym celu kompilacji. Język FSharp.Core 11 dodaje kompilację net10.0 obok netstandard2.0 i netstandard2.1, dzięki czemu może korzystać z nowoczesnych interfejsów API .NET bez porzucania starszych platform docelowych.
Interfejsy API specyficzne dla platformy docelowej i zachowanie
Kompilacje mogą uwidaczniać różne interfejsy API i implementacje. Decyzja targetowania jawnie wybiera nowoczesny cel docelowy; nie jest automatycznie ustalana zgodnie z celem programistycznym kompilatora.
Której kompilacji używa projekt
NuGet wybiera najbliższy zgodny zasób dla każdego elementu docelowego projektu. Projekty .NET 10 i nowsze mogą wybrać lib/net10.0/FSharp.Core.dll; starsze zgodne platformy docelowe wybierają zasób dla platformy .NET Standard.
Aby zdiagnozować dostępność:
- Sprawdź ustaloną wersję pakietu FSharp.Core.
- Sprawdź wybrane zasoby kompilowania i środowiska uruchomieniowego w programie
obj/project.assets.json. - Sprawdź środowisko uruchomieniowe, w którym działa aplikacja, nie tylko jej zestawy referencyjne.
<LangVersion>preview</LangVersion> włącza działanie kompilatora. Nie dodaje brakujących składników Core, nie wybiera innego zasobu pakietu ani nie zapewnia obsługi środowiska uruchomieniowego.
Przykłady różnic
| Area | Dostępność w Core 11 |
|---|---|
| Metody pomocnicze ValueTask i powiązane przeciążenia | Dostępne w systemach netstandard2.1 i net10.0, a nie netstandard2.0. |
Z zachowaniem granic Array2D.map, mapi i copy |
Kompilacja net10.0 używa nowszego interfejsu API alokacji .NET; kompilacje .NET Standard zachowują mechanizm awaryjny. |
| Funkcje wewnętrzne asynchronicznego zwrotu środowiska uruchomieniowego | Udostępniane przez kompilację net10.0; Obowiązują również wymagania kompilatora, języka, referencji i środowiska uruchomieniowego. |
Aby uzyskać szczegółowe informacje, zobacz Funkcje asynchroniczne i zadania oraz Array2D i Native AOT. Zwykłe pomocniki asynchroniczne/zadania i print/printn są dostępne we wszystkich trzech kompilacjach.
F# Interactive i asynchroniczne usuwanie
Wyrażenia zadań języka F# już obsługują zasoby IAsyncDisposable w zgodnych skompilowanych projektach.
Poprawka pakietowania F# 11 udostępnia nowoczesną kompilację Core dla F# Interactive, więc równoważny kod use i use! również tam działa. Zaktualizuj zestaw narzędzi, a nie tylko odwołanie do pakietu aplikacji.
Asynchroniczne środowisko uruchomieniowe to odrębny kontrakt środowiska uruchomieniowego
Obiekt docelowy kompilacji net10.0 Core nie ustanawia obsługi asynchronicznego wykonywania w środowisku uruchomieniowym. Postępuj zgodnie z oddzielnymi wymaganiami kompilatora, referencji i środowiska uruchomieniowego w Asynchronicznych eksperymentach środowiska uruchomieniowego.