我需要安装使用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)
从here下载powerpack zip文件。
将文件解压缩到目录~/bin
。
~/bin/FSharpPowerPack-1.9.9.9/bin
添加到PATH。我还将它添加到MONO_PATH以防万一。 (我不确定这是否有必要)~/bin/FSharpPowerPack-1.9.9.9/bin/gac
中的dll,请使用命令sudo gacutil -i <ALL_THE_FILES_IN_DLL>.dll
我使用this page中的示例代码进行了测试。我把它命名为linq.fs
open Microsoft.FSharp.Linq
let adderExpr = <@ fun i -> i + 1 @>.ToLinqExpression()
let adder = <@ fun i -> i + 1 @>.Compile()
我在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:未定义字段,构造函数或成员“编译”
我是否需要使用gacutil -i
安装所有dll?或者,只是将dll路径附加到PATH / MONO_PATH环境变量就足够了?
答案 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()