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

时间:2011-06-01 19:10:22

标签: f# mono gac 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. here下载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
  5. 使用powerpack

    我使用this page中的示例代码进行了测试。我把它命名为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,338):错误FS0039:未定义字段,构造函数或成员'ToLinqExpression'

      /Users/smcho/Desktop/fs/powerpack/linq.fs(2,33):错误FS0039:未定义字段,构造函数或成员“编译”

    2. 我是否需要使用gacutil -i安装所有dll?或者,只是将dll路径附加到PATH / MONO_PATH环境变量就足够了?

1 个答案:

答案 0 :(得分:4)

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

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

open Microsoft.FSharp.Linq.QuotationEvaluation

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