如何在Mono中安装和使用F#Powerpack



我需要使用F#powerpack进行安装。我在Mac上使用单声道版本2.10.2。

mono --version
Mono JIT compiler version 2.10.2 (tarball Mon Apr 18 09:14:01 MDT 2011)
Copyright (C) 2002-2011 Novell, Inc and Contributors. www.mono-project.com
        TLS:           normal
        SIGSEGV:       normal
        Notification:  kqueue
        Architecture:  x86
        Disabled:      none
        Misc:          debugger softdebug 
        LLVM:          yes(2.9svn-mono)
        GC:            Included Boehm (with typed GC)

安装

  1. 从这里下载powerpack zip文件。

  2. 将文件解压缩到目录~/bin

  3. ~/bin/FSharpPowerPack-1.9.9.9/bin添加到PATH中。我还将它添加到MONO_PATH中以防万一。(我不确定这是否有必要)
  4. 对于~/bin/FSharpPowerPack-1.9.9.9/bin/gac中的dll,请使用命令sudo gacutil -i <ALL_THE_FILES_IN_DLL>.dll

使用powerpack

我使用本页中的示例代码进行了测试。我把它命名为linq.fs

open Microsoft.FSharp.Linq
let adderExpr = <@ fun i -> i + 1 @>.ToLinqExpression()
let adder = <@ fun i -> i + 1 @>.Compile()

问题

  1. 我的fsc linq.fs /r:FSharp.PowerPack.Linq.dll出现错误。可能出了什么问题?

    /Users/smcho/Desktop/fs/powerpack/linq.fs(1.38):错误FS0039:未定义字段、构造函数或成员"ToLinqExpression"

    /Users/smcho/Desktop/fs/powerpack/linq.fs(2,34):错误FS0039:未定义字段、构造函数或成员"Compile"

  2. 我需要用gacutil -i安装所有dll吗?或者,仅仅将dll路径附加到path/MONO_path环境变量就足够了?

您的安装过程似乎是正确的(只需使用gacutil -i解压缩并安装即可)。我认为这个示例有一个小问题——ToLinqExpression扩展方法在需要显式打开的模块中可用,所以你的文件应该是:

EDIT正确的模块名称实际上是Microsoft.FSharp.Linq.QuotationEvaluation:

open Microsoft.FSharp.Linq.QuotationEvaluation
let adderExpr = <@ fun i -> i + 1 @>.ToLinqExpression()
let adder = <@ fun i -> i + 1 @>.Compile()

相关内容

  • 没有找到相关文章

最新更新