Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una biblioteca no puede usar directamente las API no disponibles en su destino de compilación. FSharp.Core 11 agrega una compilación net10.0 junto a netstandard2.0 y netstandard2.1, por tanto, puede usar API modernas de .NET sin dejar de admitir destinos anteriores.
API y comportamiento específicos del destino
Las compilaciones pueden exponer diferentes API e implementaciones. La decisión de segmentación de destino selecciona explícitamente el destino moderno; no sigue automáticamente la plataforma de desarrollo del compilador.
¿Qué compilación usa tu proyecto?
NuGet selecciona el recurso compatible más cercano para cada objetivo del proyecto. Los proyectos de .NET 10 y versiones posteriores pueden seleccionar lib/net10.0/FSharp.Core.dll; los destinos compatibles más antiguos seleccionan un recurso de .NET Standard.
Para diagnosticar la disponibilidad:
- Compruebe la versión del paquete FSharp.Core resuelta.
- Inspeccione los recursos de compilación y tiempo de ejecución seleccionados en
obj/project.assets.json. - Compruebe el entorno de ejecución que ejecuta la aplicación, no solo sus ensamblados de referencia.
Esto <LangVersion>preview</LangVersion> habilita el comportamiento del compilador. No agrega miembros de Core que faltan, selecciona un recurso de paquete diferente o proporciona soporte en tiempo de ejecución.
Ejemplos de diferencias
| Area | Disponibilidad en Core 11 |
|---|---|
| Asistentes de ValueTask y sobrecargas relacionadas | Disponible en netstandard2.1 y net10.0, no netstandard2.0. |
Array2D.map, mapi y copy que preservan los límites |
La net10.0 compilación usa una API de asignación de .NET más reciente; las compilaciones de .NET Standard conservan su mecanismo alternativo. |
| Intrínsecos de retorno runtime-async | Expuesto por la net10.0 compilación; También se aplican los requisitos del compilador, el lenguaje, la referencia y el entorno de ejecución . |
Para obtener más información, consulte Funciones asincrónicas y de tareas y Array2D y AOT nativo. Los asistentes normales de Async/Task y print/printn están disponibles en las tres compilaciones.
F# Interactive y liberación asincrónica
Las expresiones de tarea de F# ya admiten IAsyncDisposable recursos en proyectos compilados compatibles. La corrección de empaquetado de F# 11 proporciona la compilación Core moderna a F# Interactive, por lo que el use! y use código equivalentes también funcionen allí. Actualice el conjunto de herramientas, no solo la referencia de paquete de una aplicación.
La asincronía en tiempo de ejecución es un contrato en tiempo de ejecución independiente
El destino de la compilación Core net10.0 no establece compatibilidad async en tiempo de ejecución. Siga los requisitos del compilador, la referencia y el entorno de ejecución independientes en experimentos asincrónicos del entorno de ejecución.