【问题标题】:Using C# library in an F# project?在 F# 项目中使用 C# 库?
【发布时间】:2011-04-20 14:11:25
【问题描述】:

我刚接触 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#,而且他们远远领先于我的问题。

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

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

【问题讨论】:

    标签: c# visual-studio f# reference


    【解决方案1】:

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

    #r "RdioSharp.dll"
    

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

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

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

    #I @"c:\temp"
    

    【讨论】:

    • 啊,谢谢!在我所有的挫折中,我忘记了@ 我的字符串以确保反斜杠被转义。难怪它找不到我的图书馆。
    • 谢谢!!几个小时后,我找到了你的答案并解决了它!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多