2013-01-19 29 views
7

我無法弄清楚其中F#核心運行時庫的版本應該結合使用Mono平臺(.NET 3.5)。F#編譯器和運行時版本號混亂

  • 與Microsoft .Net 4.5一起安裝了兩個版本的FSharp Core運行時,2.3.0.0和4.3.0.0。我的猜測是,第一個是用於.NET Framework 2.0和更高版本,第二個只能用於.NET 4.0或更高版本。這個假設是否正確?
  • 由於FSharp現在是開源的,可在Github上,我可以檢查出最近的標籤,建立和使用它在我的項目產生FSharp.Core DLL。我不知道的是,開源FSharp上的版本號與.NET包中包含的封閉源代碼有關嗎?現在
  • 開源編譯器的版本是3.0.25和封閉源代碼的編譯器好像是4.0,我很困惑:
    • 如何從開源FSharp.Core運行版本(也3.0.25)項目涉及到封閉的源代碼2.3.0.0版本?由於3.0.25的數字遠高於2.3.0.0,我假設開源版本更新,但我不確定,因爲我不知道是否可以比較版本號。
    • NuGet另一方面提供FSharp.Core 2.0和4.0,這似乎是相當古老。爲什麼新版本尚未上傳到NuGet?

回答

6

您正在混淆兩種不同的版本號;不是我責怪你 - 但我明白如果你是F#和/或.NET的新手,這會是怎樣的混亂。

  • 正確的。 FSharp.Core的2.3.0.0版本用於.NET 2.0(以及3.0和3.5,這是(基本上).NET 2.0的擴展版本); 4.3.0.0版本適用於.NET 4.0和4.5。
  • F#的最新版本是F#3.0。這是此版本的Visual Studio 2012 注運:這裏,3.0是語言版本,它有沒有關係,你要運行的.NET Framework的版本。在GitHub上的F#庫使用修訂標記(也就是3.0.25的0.25部分),所以它更容易告訴你,如果需要更新到新版本;這些更改通常只是構建腳本,安裝程序等 - 但很少更改爲F#編譯器和/或庫。
  • 如果你建立從F#的GitHub庫和編譯FSharp.Core裝配有版本3.0.25,請打開一個新的問題在Github上關於此的代碼 - 它應該具有相同的版本號爲「真正的」 F#來自Microsoft的圖書館。唯一的區別應該在組件簽署的公鑰中。
  • 我不知道爲什麼新的版本不上的NuGet - 它可能只是忘記了。我現在要解決這個問題,以確保它們儘快添加。
+0

謝謝你這麼快速,清晰地回答我的問題。 –