Xamarin 的 F# 交互板找不到单声道

Xamarin's F# interactive pad cannot find mono

在 OSX。

当我打开 pad 时,我收到此错误消息:/Library/Frameworks/Mono.framework/Versions/4.0.4/bin/fsharpi: line 24: exec: mono: not found

但是我可以构建 运行 F# 程序,所以 Xamarin 显然确实找到了单声道。

我遇到了同样的问题并设法解决如下问题:fsharpi 是一个 shell 脚本;它在第 24 行失败:

$EXEC mono $DEBUG $MONO_OPTIONS /Library/Frameworks/Mono.framework/Versions/4.0.4/lib/mono/4.5/fsi.exe --exename:$(basename "[=10=]") "$@"

显然,当 Xamarin 启动 fsharpi 时,它没有找到单声道可执行文件,即使 $PATH 变量显然已正确设置并且可以从终端启动 fsharpi。 在我的 mac 上,单声道可执行文件位于“/Library/Frameworks/Mono.framework/Commands/mono”,所以我的修复是用以下内容替换该行:

MONO="/Library/Frameworks/Mono.framework/Commands/mono"
$EXEC $MONO $DEBUG $MONO_OPTIONS /Library/Frameworks/Mono.framework/Versions/4.0.4/lib/mono/4.5/fsi.exe --exename:$(basename "[=11=]") "$@"

这不是最优雅的解决方案,但脚本中已经硬编码了 fsi.exe 路径,所以我认为可以接受。