2017-01-03 36 views
4

我試圖部署在.NET 4.6(這是蔚藍的應用程序使用的),所以我引用了最新fsharp.core兼容與我.fsproj這個框架內,這是<TargetFSharpCoreVersion>4.4.0.0</TargetFSharpCoreVersion>我很困惑哪個fsharp.core我應該引用,以及如何做到這一點

但在我的代碼我使用倜儻2.0.0-RC8,它引用一些fsharp.core 4.0.0.1,一個是從的NuGet。

但不知何故,它的作品!任何人都可以給我一個解釋,即使它對於它的工作原理有點簡單嗎?怎麼可能有兩個fsharp.cores,它看起來不像它聽起來那麼核心。

:■

回答

3

FSharp.Core的版本的NuGet不等於FSharp.Core的組件版本。

The versioning scheme for FSharp.Core is confusing,但是當你在.NET 4.6應用程序中使用FSharp.Core中,裝配版本是4.4.0.0,即使它捆綁在一個NuGet包與版本4.0.0.1。

可以的Visual Studio裏面自己展開調查。舉個例子,我有一個小的應用程序,具有以下的NuGet依賴關係:

Id         Versions 
--         -------- 
FsCheck        {2.6.2} 
FsCheck.Xunit      {2.6.2} 
FSharp.Core       {4.0.0.1} 
Unquote        {3.1.2} 
xunit.abstractions     {2.0.0} 
xunit.extensibility.core   {2.1.0} 
xunit.extensibility.execution  {2.1.0} 

你會發現,FSharp.Core的的NuGet版本是4.0.0.1。

如果你發現在Solution Explorer中的參考,你可以找到實際的.dll文件,其中包含FSharp.Core。如果您打開此與反射器或Visual Studio的對象瀏覽器,你會看到組件的版本,其實4.4.0.0。

+0

若Si我已經引用4.4.0.0我不應該需要引用4.0.0.1或我仍然需要只是參考,因爲他們嚴格來說並不相同,一些圖書館宣佈其一作爲自己的依賴和其他庫聲明另一個作爲他們的依賴? –

+3

@LayGonzález查看更新的答案。該_assembly_ FSharp.Core 4.4.0.0在_NuGet package_ FSharp.Core 4.0.0.1捆綁。 –

+0

現在我明白了!一個是組件,另一個是包裝。非常感謝! –

相關問題