Cílové frameworky FSharp.Core

Knihovna nemůže přímo používat rozhraní API, která nejsou součástí cílové platformy kompilace. FSharp.Core 11 přidává sestavení net10.0 vedle netstandard2.0 a netstandard2.1, aby mohl využívat moderní rozhraní API .NET bez vyřazení starších cílů.

Rozhraní API a chování specifické pro cíl

Sestavení můžou vystavit různá rozhraní API a implementace. Rozhodnutí o výběru cíle explicitně vybere moderní cíl; automaticky se neřídí vývojovým cílem kompilátoru.

Které sestavení váš projekt používá

NuGet vybere nejbližší kompatibilní asset pro každý cíl projektu. Projekty .NET 10 a novější mohou vybrat lib/net10.0/FSharp.Core.dll; pro starší kompatibilní cíle se vybere prostředek pro .NET Standard.

Diagnostikovat dostupnost:

  1. Zkontrolujte vyřešenou verzi balíčku FSharp.Core.
  2. Zkontrolujte vybrané prostředky kompilace a modulu runtime v obj/project.assets.json.
  3. Zkontrolujte běhové prostředí, které spouští aplikaci, nejen její referenční sestavení.

<LangVersion>preview</LangVersion> umožňuje fungování kompilátoru. Nepřidává chybějící členy Core, nevybírá jiný prostředek balíčku ani neposkytuje podporu modulu runtime.

Příklady rozdílů

Area Dostupnost v Core 11
Pomocné rutiny ValueTask a související přetížení K dispozici v netstandard2.1 a net10.0, ne netstandard2.0.
zachovávající hranice Array2D.map, mapi a copy Sestavení net10.0 používá novější rozhraní API pro přidělování .NET; sestavení .NET Standard si zachovají svůj záložní mechanismus.
Intrinsické funkce pro asynchronní návrat za běhu Určeno sestavením net10.0; platí také požadavky kompilátoru, jazyka, referencí a modulu runtime.

Podrobnosti najdete v tématu Asynchronní funkce a funkce Task a Array2D a Native AOT. Běžné pomocné rutiny Async/Task a print/printn jsou k dispozici ve všech třech buildech.

F# Interactive a asynchronní uvolnění prostředků

Výrazy úloh jazyka F# již podporují IAsyncDisposable zdroje v kompatibilních kompilovaných projektech. Oprava balíčkování ve F# 11 dodává moderní sestavení Core pro F# Interactive, takže ekvivalentní use a use! kód tam také funguje. Aktualizujte sadu nástrojů, nejen referenci na balíček aplikace.

Asynchronní runtime je samostatná smlouva runtime.

Cíl sestavení Core net10.0 nezajišťuje podporu runtime-async. Postupujte podle samostatných požadavků kompilátoru, referencí a modulu runtime v části Asynchronní experimenty modulu runtime.

Viz také