用Mono运行F#代码
我已经安装了F#2.0.0,并使用mono 2.8用Mono运行F#代码,f#,mono,F#,Mono,我已经安装了F#2.0.0,并使用mono 2.8 let rec fib n = match n with | 1 | 2 -> 1 | n -> fib(n-1) + fib(n-2) let n = 40 let x = fib(n) printfn "%d" x 我用fsc.exe编译了这段代码以获得fib.exe。使用mono fib.exe运行此命令会导致此错误 mono fact.exe Could not load file or ass
let rec fib n =
match n with
| 1 | 2 -> 1
| n -> fib(n-1) + fib(n-2)
let n = 40
let x = fib(n)
printfn "%d" x
我用fsc.exe编译了这段代码以获得fib.exe。使用mono fib.exe运行此命令会导致此错误
mono fact.exe
Could not load file or assembly 'FSharp.Core, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Unhandled Exception: System.TypeLoadException: Could not load type
'.$Factorial' from assembly 'factorial, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null'.
mono fact.exe
无法加载文件或程序集“FSharp.Core,版本=2.0.0.0,区域性=中性,
PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。
未处理的异常:System.TypeLoadException:无法加载类型
来自程序集的“.$Factorial”Factorial,版本=0.0.0.0,
区域性=中性,PublicKeyToken=空'。
可能有什么问题
补充
sudo gacutil-i FSharp.Core.dll
解决了这个问题。F#程序集(如FSharp.Core.dll)可能只安装到.Net GAC。您需要将它们安装到Mono的GAC(Mono的gacutil.exe),或者将程序集复制到与可执行文件相同的目录中。谢谢!如果您已通过编译Mono 2.8并从此处使用F#的安装包,那么完整的命令将是:sudo/opt/Mono-2.8.2/bin/gacutil-i/usr/lib/fsharp/fsharp.Core.dll sudo gacutil -i FSharp.Core.dll