2011-04-20 91 views
9

我对F#很新鲜,但我真的很想学习它。我知道Python,我知道C#。事实上,我有一个我自己创建的C#库,它是Rdio API的封装(我已将其命名为RdioSharp),我可以成功地将其引入另一个C#项目并调用它,使用它,获取数据......它可以工作。在F#项目中使用C#库?

我想在F#项目中开始玩这个C#库,但它工作不正常。以下简要介绍一下C#代码的外观。

namespace RdioSharp { 
    public class RdioManager { 
     public RdioManager() { } 
    } 
} 

我已在我的FSharpTest项目的参考DLL,我真的拉升.fsx文件,我已经试过以下,各线以下(再次,请记住,我不知道我在做什么)。

open RdioSharp 
open RdioSharp.dll 
#r "RdioSharp.dll" 
#r "C:\Path\To\Library\RdioSharp.dll" 

我无法弄清楚这一点。我知道如何使用系统F#库,但我如何引用F#中的C#库?可能吗?这足够的信息继续吗?

我见过thisthis(这更接近我的问题),但这些人都比我更了解F#,而且他们远超我的问题。

在交互式窗口中,当冲出#r "RdioSharp.dll";;时,我收到了这个可爱的错误。

error FS0084: Assembly reference 'RdioSharp.dll' was not found or is invalid 

回答

5

以下代码适用于F#环境可以找到Rdiosharp.dll的位置。通常不会!所以它不起作用,并告诉你“错误FS0084:程序集引用”RdioSharp.dll“未找到或无效”。

#r "RdioSharp.dll" 

您可以提供此DLL的确切路径为:

#r @"c:\temp\RdioSharp.dll" 

,或者你可以添加的文件夹到搜索路径:

#I @"c:\temp" 
+0

啊,谢谢!在我所有的挫折中,我忘记了'@'我的字符串以确保反斜杠能够逃脱。难怪它找不到我的图书馆。 – 2011-04-20 14:42:13

+0

谢谢!几个小时后,我发现你的答案并解决了它! – dusiod 2013-06-15 16:50:45