web-dev-qa-db-ja.com

Fsharp.Coreの正しいバージョン

Visual Studio 2013 Ultimateを使用してF#コンソールアプリケーションを構築しています。ターゲットフレームワークは.Net4.5です。

私のコンピューターにインストールされているFSharp.Coreのバージョン(おそらくVS 2013をインストールすることによって)は4.3.1.0です。

NuGetには、FSharp.Coreの2つのバージョンがあります。2012年4月12日に公開された4.0.0と、2013年3月5日に公開されたFsharp.Core.3バージョン0.0.2のIDを持つバージョンです。

これらの各バージョンをいつ使用する必要があるかについてのガイダンスを探しています。バージョン番号がわかりにくく、NuGetで最新の製品リリースを見つけることを期待していました。

私は何かが足りないのですか?

29
JonnyBoats

NugetからFSharp.Coreを取得するべきではありません。 Microsoftは、今日nugetに公式のF#ビットを公開していません(ただし、これは将来変更される可能性があります)。サードパーティパッケージではFSharp.Coreをバンドルするのが一般的です(おそらくそれがそのサードパーティコンポーネントのテスト/検証に使用されるバージョンであるため)が、nugetは現在使用しないでくださいFSharp.Coreの更新または新しいバージョンを取得するためのメカニズムとして。

FSharp.Coreのバージョン管理の話は悲しいことにかなり複雑であり、「バージョンが高いほど新しいことを意味する」ほど単純ではありません。理解しておくべき重要なことは、2つの軸があることです-ランタイムがサポートするF#バージョンと、それが対象とする.NETFrameworkバージョン/プロファイル。

以下は、VS 2013に同梱されている公式のFSharp.Coreバージョンです(これらは%ProgramFiles(x86)%\Reference Assemblies\Microsoft\FSharpの下にドロップされています)。

  • 4.3.1.0(F#3.1/.NET 4)これは最新の公式バージョンです。 .NET 2をターゲットにする必要がある場合、または3.1で動作しないレガシーF#コンポーネントを使用している場合を除き、これは新しいデスクトップアプリに使用する必要があるバージョンです。
  • 4.3.0.0(F#3.0/.NET 4)これらはVS2012に付属しているものと同じビットです。作業を続行できるように含まれています。 VS 2013のF#3.0プロジェクトは、3.1に再ターゲットしません。 3.1に移行する準備がまだできていないレガシーF#3.0デスクトッププロジェクトがある場合は、これを使用する必要があります。
  • 2.3.0.0(F#3.0/.NET 2)これらはVS 2012に付属しているものと同じビットです。これを使用する唯一の理由は、 .NET2をターゲットにしています。NET2の側面はこれ以上開発されていませんが、.NET4以降をターゲットにしたFSharp.Coreの新機能やバージョンなどが作成されます。 .NET 2 FSharp.Coreは引き続き完全にサポートされていますが、フリーズしています。
  • 3.3.1.0(F#3.1/"Portable")このバージョンは、.NETポータブルプロファイル7(.NET 4.5/Windowsストア)を対象としています。これは、Windowsストアアプリのコンポーネントを作成していて、Silverlightを気にしない場合に使用します。このプロファイルは、VS2013で新たにサポートされます。
  • 2.3.5.1(F#3.1/"Portable(Legacy)")このバージョンは.NETポータブルプロファイル47(.NET 4/Silverlight 5/Windows Store )。 Silverlightコンポーネントを作成する場合は、これを使用します。このプロファイルはVS2012でもサポートされており、当時は単に「ポータブル」と呼ばれていました。
  • 2.3.5.0(F#3.0/"Portable(Legacy)")このバージョンは.NETポータブルプロファイル47(.NET 4/Silverlight 5/Windows Store )。これらは、VS 2012に含まれていたものと同じビットです。VS2013に含まれているため、F#3.0ポータブル/シルバーライトプロジェクトでの作業を継続できます。

.NETポータブルプロファイルは大きなPITAであり、非常に複雑になります。このサイトには、理解に役立つ要約があります: http://blog.stephencleary.com/2012/05/framework-profiles-in-net.html

したがって、特定のシナリオ(新しいコンソールアプリ)には4.3.1.0を使用します。

2015年7月編集:

これは、おそらく上記のテキストの壁よりもストーリーをよく説明している表です。バージョン番号の動機を示すために色を使用しようとしました。ポータブルライブラリのバージョン管理は、VS 2012と2013では少しアドホックで一貫性がありませんでしたが、VS 2015以降、最終的に一貫性があり、予測可能です。これは、リリースされたばかりのF#4.0で最新です。

enter image description here

49
latkin
6
dustinmoris