Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Una libreria non può usare direttamente le API assenti dalla destinazione di compilazione. FSharp.Core 11 aggiunge una build insieme a netstandard2.0 e netstandard2.1 quindi può usare API moderne .NET senza eliminare le destinazioni meno recenti.
API e comportamento specifici della destinazione
Le compilazioni possono esporre DIVERSE API e implementazioni. La decisione di targeting seleziona in modo esplicito la destinazione moderna; non segue automaticamente la destinazione di sviluppo del compilatore.
Quale build usa il progetto
NuGet seleziona l'asset compatibile più vicino per ogni framework di destinazione del progetto. .NET 10 e versioni successive possono selezionare lib/net10.0/FSharp.Core.dll; le destinazioni compatibili meno recenti selezionano un asset .NET Standard.
Per eseguire la diagnosi della disponibilità:
- Controllare la versione del pacchetto FSharp.Core risolta.
- Esaminare gli asset di compilazione e di runtime selezionati in
obj/project.assets.json. - Controllare il runtime che esegue l'applicazione, non solo gli assembly di riferimento.
<LangVersion>preview</LangVersion> abilita il comportamento del compilatore. Non aggiunge membri Core mancanti, non seleziona un asset del pacchetto diverso e non fornisce supporto di runtime.
Esempi delle differenze
| Area | Disponibilità in Core 11 |
|---|---|
| Helper di ValueTask e overload correlati | Disponibile in netstandard2.1 e net10.0, non netstandard2.0. |
Array2D.map, mapi e copy che preservano i limiti |
La net10.0 compilazione usa un'API di allocazione .NET più recente; le compilazioni .NET Standard mantengono il fallback. |
| Intrinseci di restituzione del runtime async | Esposto dalla net10.0 compilazione; si applicano anche i requisiti del compilatore, del linguaggio, del riferimento e del runtime . |
Per informazioni dettagliate, vedere Funzioni asincrone e task e Array2D e AOT nativo. Gli helper Async/Task ordinari e print/printn sono disponibili in tutte e tre le compilazioni.
F# Interactive e rilascio asincrono
Le espressioni di task F# supportano già IAsyncDisposable nei progetti compilati compatibili. La correzione per la creazione di pacchetti F# 11 fornisce la build core moderna a F# Interactive in modo che anche il codice equivalente use e use! funzioni lì. Aggiornare il set di strumenti, non solo il riferimento al pacchetto di un'applicazione.
Runtime async è un contratto di runtime separato
Il target della build Core net10.0 non abilita il supporto runtime-async. Seguire i requisiti separati del compilatore, dei riferimenti e del runtime negli esperimenti asincroni di runtime.