Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett bibliotek kan inte direkt använda API:er som saknas i kompileringsmålet. FSharp.Core 11 lägger till en net10.0 build bredvid netstandard2.0 och netstandard2.1 så att det kan använda moderna .NET API:er utan att släppa äldre mål.
Målspecifika API:er och beteende
Byggena kan exponera olika API:er och implementeringar. Beslutet om målval väljer uttryckligen det moderna målet; det följer inte automatiskt kompilatorns utvecklingsmål.
Vilken build ditt projekt använder
NuGet väljer den närmaste kompatibla resursen för varje projektmål. .NET 10 och senare projekt kan välja lib/net10.0/FSharp.Core.dll; äldre kompatibla mål väljer en .NET Standard-resurs.
Så här diagnostiserar du tillgängligheten:
- Kontrollera den lösta FSharp.Core-paketversionen.
- Granska de valda kompilerings- och körningsresurserna i
obj/project.assets.json. - Kontrollera körmiljön som kör programmet, inte bara dess referensassemblies.
<LangVersion>preview</LangVersion> möjliggör kompilatorbeteende. Den lägger inte till saknade Core-medlemmar, väljer en annan paketresurs eller ger stöd för körning.
Exempel på skillnader
| Area | Tillgänglighet i Core 11 |
|---|---|
| ValueTask-hjälpmetoder och relaterade överlagrade metoder | Tillgänglig i netstandard2.1 och net10.0, inte netstandard2.0. |
gränsbevarande Array2D.map, mapi och copy |
Bygget net10.0 använder ett nyare .NET-allokerings-API; .NET Standard-versioner behåller sin reservlösning. |
| Runtime-async-returintrinsiker | Exponeras av bygget net10.0; krav för kompilator, språk, referens och körning gäller också. |
Mer information finns i Async och taskfunktioner och Array2D och Native AOT. Vanliga Async-/Task-hjälpare och print/printn är tillgängliga i alla tre versionerna.
F# Interactive och asynkron frigöring
F# task-uttryck stöder redan IAsyncDisposable-resurser i kompatibla kompilerade projekt.
Korrigeringen av paketeringen i F# 11 levererar den moderna Core-versionen till F# Interactive så att motsvarande use och use! kod också fungerar där. Uppdatera verktygsuppsättningen, inte bara ett programs paketreferens.
Runtime async är ett separat runtime-kontrakt
Core-versionens net10.0 target etablerar inte stöd för runtime-async. Följ de separata kraven för kompilator, referenser och körning i asynkrona experiment för körning.