使用Mono编译时如何引用.NET dll

3

我在这里提出了一个问题,关于安装F# PowerPack并使用它。

error FS0078: Unable to find the file 'FSharp.PowerPack.Linq.dll' in any of
 /Library/Frameworks/Mono.framework/Versions/2.10.2/lib/mono/2.0
 /Users/smcho/Desktop/fs/powerpack
 /Users/smcho/smcho/bin/FSharp-2.0.0.0/bin

当我运行这个命令fsc linq.fs /r:FSharp.PowerPack.Linq.dll时,在mono下出现了以下错误消息。
似乎在使用/r:参数时,mono F#编译器会在以下位置查找dll文件:
  1. /Library/Frameworks/Mono.framework/Versions/2.10.2/lib/mono/2.0 <-- mono目录
  2. /Users/smcho/smcho/bin/FSharp-2.0.0.0/bin <-- F#目录
  3. /Users/smcho/Desktop/fs/powerpack <-- 当前目录。
然而,我并不想将所有的dll文件都复制到当前目录。是否有一种方法可以让mono F#或C#编译器知道在除这两个目录之外的地方去查找dll文件?
看起来MONO_PATH和gacutil -i是用于在运行时查找dll文件,而不是编译时。
补充说明: fsc编译器支持/I:选项。
fsc linq.fs /I:/bin/FSharpPowerPack-1.9.9.9/bin/gac /r:FSharp.PowerPack.Linq.dll
1个回答

1

你不能只使用

-r:/full/path/to/the/reference/assembly

吗?(你是对的,gacutil 是用于运行时程序集,而 -r 是用于设计时引用程序集,这两者可能相同也可能不同。)


1
对于 F# 编译器,我认为也有一个 -I 包含路径选项。 - Brian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接