2011-04-20 181 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