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

2023-09-03 16:25:08 作者:一只失宠猫

我无法找出是哪个版本的F#核心运行时库,应结合使用Mono平台(.NET 3.5)。

I am unable to figure out which version of the F# Core runtime library should be used in combination with the Mono platform (.NET 3.5).

在安装微软的.Net 4.5来了两个版本的FSharp核心运行时,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,这似乎是pretty的旧。为什么新版本还没有上传到的NuGet? Installed with Microsoft .Net 4.5 come two versions of the FSharp Core runtime, 2.3.0.0 and 4.3.0.0. My guess is that the first one is for use in the .NET framework 2.0 and later and that the second one can only be used by .NET 4.0 or later. Is this assumption correct? Since FSharp is now open source and available on Github, I can check out a recent tag, build it and use the FSharp.Core dll it produces in my project. What I do not know is how the version number on the open source FSharp relates to closed-source ones included in the .NET package? The open source compiler version is now 3.0.25 and the closed source compiler seems to be 4.0, I'm confused: How does the FSharp.Core Runtime version (also 3.0.25) from the open source project relate to the closed source 2.3.0.0 version? Since the number 3.0.25 is much higher than 2.3.0.0 I'm assuming the open source version is much newer, but I'm not really sure, since I don't know if the version numbers can be compared. NuGet on the other hand offers FSharp.Core 2.0 and 4.0, which seems to be pretty old. Why is the new version not yet uploaded to NuGet?

推荐答案

正在混为一谈两种不同的版本号;并不是说我怪你,但 - 我了解,如果你是新的F#和/或.NET也可能会造成混乱

You are conflating two different kinds of version numbers; not that I blame you though -- I understand how it could be confusing if you're new to F# and/or .NET.

修正。该 2.3.0.0 版本FSharp.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#库使用修订标记(即在 0.25 的3.0.25部分),所以它更容易告诉你,如果需要更新到新版本;这些更改通常只是构建脚本,安装等 - 但很少是他们改变为F#编译器和/或库 如果您从F#的GitHub库建立code和编译FSharp.Core组件具有3.0.25版本,请打开一个新的问题Github上关于这一点 - 它应该具有相同的版本号为真正的F#库,从微软。唯一的区别应该是在公钥组件用。签署 在我不知道为什么新版本不上的NuGet - 它可能只是忘记了。我会开这个问题,现在,以确保它们尽快加入。 Correct. The 2.3.0.0 version of FSharp.Core is for use with .NET 2.0 (and 3.0 and 3.5, which are (basically) extended versions of .NET 2.0); the 4.3.0.0 version is for .NET 4.0 and 4.5. The latest version of F# is F# 3.0. This is this version that shipped with Visual Studio 2012. NOTE: Here, 3.0 is the language version, which has nothing to do with which version of the .NET Framework you want to run. The F# repository on GitHub uses revision tags (that is, the .25 part of 3.0.25) so it's easier to tell if you need to update to a newer version; the changes are usually just build scripts, installers, etc. -- but rarely are they changes to the F# compiler and/or libraries. If you build the code from the F# GitHub repository and the compiled FSharp.Core assembly has version 3.0.25, please open a new Issue on Github about this -- it should have the same version numbers as the "true" F# libraries from Microsoft. The only difference should be in the public key the assemblies are signed with. I don't know why the new versions aren't on NuGet -- it was probably just forgotten about. I'll open an issue about this now to make sure they're added ASAP.