我正在使用Visual Studio 2013 Ultimate构建一个F#控制台应用程序。目标框架是.Net 4.5
我的计算机上安装的FSharp.Core版本(可能是通过安装VS 2013)是4.3.1.0。
在NuGet上,有两个版本的FSharp.Core,4.0.0发布于2012年4月12日,另一个版本的ID为Fsharp.Core.3 verison 0.0.2发布于2013年3月5日。
我正在寻找关于何时应该使用这些版本的指导,版本编号让我感到困惑,我本来希望在NuGet上找到最新的产品版本。
我错过了什么吗?
答案 0 :(得分:48)
你不应该从nuget获得FSharp.Core。微软今天没有发布任何正式的F#比特(虽然这可能会在将来发生变化)。第三方软件包通常捆绑 FSharp.Core(因为可能是用于测试/验证第三方组件的版本),但是nuget目前不应该用作获取机制FSharp.Core更新或新版本。
FSharp.Core的版本化故事令人遗憾地相当复杂,绝对不像“更高版本意味着更新”那么简单。要实现的一个关键事项是有2个轴 - 运行时支持的F#版本以及它所针对的.NET框架版本/配置文件。
以下是VS 2013附带的官方FSharp.Core版本(请将这些版本删除在%ProgramFiles(x86)%\Reference Assemblies\Microsoft\FSharp
下)。
.NET可移植配置文件是一个很大的PITA,并且会导致很多复杂性。本网站有一个很好的摘要,以帮助理解:http://blog.stephencleary.com/2012/05/framework-profiles-in-net.html
因此,对于您的特定场景(新控制台应用),请使用4.3.1.0。
编辑7/2015:
这是一张表,可能比上面的文字墙更好地解释了这个故事。我试图用颜色来表明版本号的动机。您会看到可移植库的版本在VS 2012和2013中有点临时和不一致,但从VS 2015开始,它最终是一致且可预测的。这是刚刚发布的F#4.0的最新版本。
答案 1 :(得分:6)
今天我可能更愿意关注these guidelines