在F#项目中使用C#库?

时间:2011-04-20 14:11:25

标签: c# visual-studio f# reference

我对F#很新鲜,但我真的很想学习它。我认识Python,我知道C#。事实上,我有一个我自己制作的C#库;它是Rdio API(我将其命名为RdioSharp)的包装器,我可以成功地将其引入另一个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#,他们远远超出了我的问题。< / p>

在交互式窗口中,当在#r "RdioSharp.dll";;中进行打孔时,我得到了这个可爱的错误。

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

1 个答案:

答案 0 :(得分:7)

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

#r "RdioSharp.dll"

您可以提供此dll的确切路径,如下所示:

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

或者您可以将其文件夹添加到搜索路径中:

#I @"c:\temp"