FSharp.Core ターゲット フレームワーク

ライブラリでは、コンパイル ターゲットに存在しない API を直接使用することはできません。 FSharp.Core 11 では、netstandard2.0 ビルドが netstandard2.1 および net10.0 と並んで追加されるため、古いターゲットを削除することなく最新の .NET API を使用できます。

ターゲット固有の API と動作

ビルドでは、さまざまな API と実装が公開されることがあります。 ターゲットの指定では、モダン ターゲットが明示的に選択されます。コンパイラの開発ターゲットに自動的には従いません。

プロジェクトで使用しているビルド

NuGet は、各プロジェクト ターゲットに最も近い互換性のあるアセットを選択します。 .NET 10 以降のプロジェクトでは、lib/net10.0/FSharp.Core.dllを選択できます。古い互換ターゲットでは、.NET Standard アセットが選択されます。

可用性を診断するには:

  1. 解決された FSharp.Core パッケージのバージョンを確認します。
  2. obj/project.assets.jsonで選択したコンパイルアセットとランタイムアセットを調べます。
  3. 参照アセンブリだけでなく、アプリケーションを実行するランタイムを確認します。

<LangVersion>preview</LangVersion> により、コンパイラの動作が有効になります。 不足している Core メンバーを追加したり、別のパッケージ資産を選択したり、ランタイム サポートを提供したりすることはありません。

相違点の例

面積 Core 11 で利用可能
ValueTask ヘルパーと関連するオーバーロード netstandard2.0とnetstandard2.1で使用でき、net10.0ではありません。
境界を保持する Array2D.map 演算子、mapi 演算子、および copy 演算子 net10.0 ビルドでは、新しい .NET 割り当て API が使用されます。.NET Standard ビルドはフォールバックを維持します。
ランタイム非同期の戻り値イントリンシクス net10.0 ビルドで提供される場合、コンパイラ、言語、参照、およびランタイムの要件も適用されます。

詳細については、非同期関数とタスク関数、Array2D およびネイティブ AOT に関するページを参照してください。 通常の非同期/タスク ヘルパーと print/printn は、3 つのビルドすべてで使用できます。

F# インタラクティブおよび非同期破棄

F# タスク式では、互換性のあるコンパイル済みプロジェクトで IAsyncDisposable リソースを既にサポートしています。 F# 11 パッケージ修正プログラムは、最新の Core ビルドを F# Interactive に提供し、その結果、同等のuseおよびuse!コードもそこで動作するようにします。 アプリケーションのパッケージ参照だけでなく、ツールセットを更新します。

async ランタイムは別のランタイム コントラクトです

コア ビルドの net10.0 ターゲットでは、ランタイム非同期サポートが確立されません。 ランタイム非同期実験の個別のコンパイラ、リファレンス、およびランタイム要件に従います。

参照