在Mono下运行F#3生成的可执行文件

在Mono下运行F#3生成的可执行文件,f#,f#-3.0,F#,F# 3.0,我想使用F#3.0命令行编译器编译一个可执行文件,然后在Mono下运行它 代码开始执行,但Mono几乎立即死掉,抱怨无法加载System.Core。谷歌搜索这一信息表明,我的目标应该是.NET3.5,而不是版本4。进一步的谷歌搜索表明,F#编译器过去采用option--cli版本,但它似乎不再接受这一点 我相信有一种方法,如果我要使用MSVC,我可以单击某个地方来设置所需的CLR版本 请问我该怎么办?非常感谢 编辑: 我曾尝试将.NET3.5作为在MSVCGUI中开发的一个更简单的项目的目标。然

我想使用F#3.0命令行编译器编译一个可执行文件,然后在Mono下运行它

代码开始执行,但Mono几乎立即死掉,抱怨无法加载System.Core。谷歌搜索这一信息表明,我的目标应该是.NET3.5,而不是版本4。进一步的谷歌搜索表明,F#编译器过去采用option--cli版本,但它似乎不再接受这一点

我相信有一种方法,如果我要使用MSVC,我可以单击某个地方来设置所需的CLR版本

请问我该怎么办?非常感谢

编辑:

我曾尝试将.NET3.5作为在MSVCGUI中开发的一个更简单的项目的目标。然后,可执行文件要求使用FSharp.core2.0.0,并且比以前更进一步。F#3编译器似乎附带了一个.NET2.0核心库,因此我认为它应该能够生成与框架的过时版本兼容的代码。剩下的问题是“如果GUI可以做到这一点,我如何从命令行做同样的事情”,请?

如果您使用的是F#3.0,那么没有理由默认不使用.NET 4.0(当然,除非您需要与现有的.NET 2.0或3.5程序集进行互操作)


您正在运行哪个版本的Mono?F#3.0需要Mono 2.10或更高版本,但我强烈建议您使用Mono 3.0或更高版本。

我使用的是2.10.8.1(Ubuntu默认)。我得到的例外是“无法加载文件或程序集'System.Core,版本4.0.0.0,区域性=…”@JoeHuha如果您使用的是Ubuntu 12.04或更高版本,只需卸载mono,然后从中克隆/构建/安装它;然后对F#3.0也做同样的事情。我可以,但我的目标确实是让它便于携带,这样它就可以开箱即用,其他人也可以轻松使用。@JoeHuha我认识的在Mono上运行F#的大多数人都在使用Mono 3.0。如果您真的必须使用Mono 2.10.8,那么您应该将其发布到邮件列表中——他们可以帮助您解决问题,这可能是F#安装问题。感谢您的建议,一旦其他所有问题都失败,我可能会尝试这样做。我已经更新了这个问题,以解释我想要为旧版本的.net进行交叉编译,而且这似乎可以从MSVC进行。通过挖掘源代码可以发现此错误消息-是否有帮助
“命令行选项”-cliroot”已被弃用。请改为使用对mscorlib.dll特定副本的显式引用。”