F#编译器和运行时版本号混淆

Fra*_*nel 7 .net mono f# nuget

我无法确定哪个版本的F#Core运行时库应该与Mono平台(.NET 3.5)结合使用.

  • 与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 Runtime版本(也是3.0.25)与封闭源2.3.0.0版本有何关系?由于3.0.25的数字远高于2.3.0.0,我假设开源版本更新,但我不太确定,因为我不知道版本号是否可以比较.
    • 另一方面,NuGet提供FSharp.Core 2.0和4.0,这看起来很旧.为什么新版本尚未上传到NuGet?

Jac*_* P. 6

您正在混淆两种不同的版本号; 不是我责备你 - 我明白如果你是F#和/或.NET的新手,会有多困惑.

  • 正确.2.3.0.0FSharp.Core 的版本用于.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 的.25部分),因此更容易判断是否需要更新到更新的版本; 这些更改通常只是构建脚本,安装程序等 - 但它们很少会更改为F#编译器和/或库.
  • 如果您从F#GitHub存储库构建代码并且已编译的FSharp.Core程序集具有版本3.0.25,请在Github上打开一个关于此问题的新问题 - 它应该具有与Microsoft的"true"F#库相同的版本号.唯一的区别应该是组件签名的公钥.
  • 我不知道为什么新版本不在NuGet上 - 它可能只是被遗忘了.我现在就打开一个关于这个的问题,以确保它们尽快添加.