Целевые платформы FSharp.Core

Библиотека не может напрямую использовать API-интерфейсы, отсутствующие в целевом объекте компиляции. FSharp.Core 11 добавляет сборку net10.0 вместе и netstandard2.0netstandard2.1 поэтому она может использовать современные API-интерфейсы .NET без удаления старых целевых объектов.

Api и поведение, относящиеся к целевому объекту

Сборки могут предоставлять различные API и реализации. Решение о целевом выборе современного целевого объекта явным образом; он не соответствует целевому объекту разработки компилятора.

Какую сборку использует ваш проект

NuGet выбирает ближайший совместимый компонент для каждой целевой платформы проекта. .NET 10 и более поздних проектов можно выбратьlib/net10.0/FSharp.Core.dll; Старые совместимые целевые объекты выбирают .NET стандартный ресурс.

Чтобы диагностировать доступность, выполните приведенные действия.

  1. Проверьте итоговую версию пакета FSharp.Core.
  2. Проверьте выбранные ресурсы компиляции и среды выполнения в obj/project.assets.json.
  3. Проверьте среду выполнения, которая выполняет приложение, а не только ее эталонные сборки.

<LangVersion>preview</LangVersion> включает поведение компилятора. Он не добавляет отсутствующих членов Core, не выбирает другой ресурс пакета и не предоставляет поддержку среды выполнения.

Примеры различий

Area Доступность в Core 11
Вспомогательные функции ValueTask и связанные перегрузки netstandard2.1 и net10.0 доступны, но не netstandard2.0.
С сохранением границ Array2D.map, mapi и copy В сборке net10.0 используется более новый API выделения .NET; сборки для .NET Standard сохраняют резервный механизм.
Встроенные функции возврата Runtime-async Предоставляется сборкой net10.0 ; Также применяются требования компилятора, языка, ссылки и среды выполнения .

Дополнительные сведения см. в разделе "Асинхронные" и "Функции задач" и"Массив2D" и "Собственный AOT". Обычные вспомогательные средства Async/Task print/printn доступны во всех трех сборках.

Интерактивное F# и асинхронное освобождение ресурсов

Выражения задач F# уже поддерживают IAsyncDisposable ресурсы в совместимых скомпилированных проектах. Исправление упаковки F# 11 предоставляет современную сборку Core для F# Interactive, так что эквивалентный код use и use! также работает там. Обновите набор инструментов, а не только ссылку на зависимость пакета приложения.

Асинхронная среда выполнения — это отдельный контракт среды выполнения

Целевой объект сборки Core net10.0 не обеспечивает поддержку runtime-async. Следуйте отдельным требованиям к компилятору, справочной документации и среде выполнения, приведённым в разделе Асинхронные эксперименты среды выполнения.

См. также