无法在 Visual F# 中打开 Fsharp.Data

Cannot open Fsharp.Data in Visual F#

我正在通过在 Visual F# 中尝试 tryfsharp.org 中的一些示例代码来学习 F#。我使用 nuget 包控制台安装了 Fsharp.Data

Install-Package FSharp.Data 

'FSharp.Data 2.1.1' already installed.
Adding 'FSharp.Data 2.1.1' to TryFsharp.
Successfully added 'FSharp.Data 2.1.1' to TryFsharp.

当我尝试引用它时:

#r "Fsharp.Data.dll"
Program.fs(10,1): error FS0084: Assembly reference 'Fsharp.Data.dll' was not found or is invalid

open Fsharp.Data
Program.fs(11,6): error FS0039: The namespace or module 'Fsharp' is not defined

这是我的项目结构:

|-- ArchitectureExplorer
|-- Backup Files
|   |-- ConsoleApplication1
|   |-- ConsoleApplication2
|   |-- ConsoleApplication3
|   |-- ConsoleApplication4
|   |-- FSharpKoans
|   |-- FsharpInFinance
|   |-- TryFsharp
|   |-- Tutorial1
|   `-- Tutorial2
|-- Blend
|   |-- ItemTemplates
|   `-- ProjectTemplates
|-- Code Snippets
|   |-- JavaScript
|   |-- SQL_SSDT
|   |-- Visual Basic
|   |-- Visual C#
|   |-- Visual C++
|   |-- Visual Web Developer
|   |-- XAML
|   `-- XML
|-- Projects
|   |-- ConsoleApplication1
|   |-- ConsoleApplication2
|   |-- ConsoleApplication3
|   |-- ConsoleApplication4
|   |-- FsharpInFinance
|   |-- TryFsharp
|   |-- Tutorial1
|   |-- Tutorial2
|   `-- WpfApplication1
|-- Settings
|   |-- CurrentSettings-2015-01-17.vssettings
|   |-- CurrentSettings.vssettings
|   |-- FontsAndColorsBackup_a4d6a176-b948-4b29-8c66-53c97a1ed7d0.vssettings
|   |-- Old.CurrentSettings.vssettings
|   `-- Windows Azure Subscriptions.xml
|-- StartPages
|-- Templates
|   |-- ItemTemplates
|   `-- ProjectTemplates
|-- Visualizers
|   |-- attribcache90.bin
|   |-- autoexp.cs
|   |-- autoexp.dll
|   |-- autoexpce.cs
|   `-- autoexpce.dll
|-- nuget.config
`-- packages
    |-- Deedle.1.0.6
    |-- FSharp.Data.2.0.14
    |-- FSharp.Data.2.1.1
    |-- FsCheck.1.0.4
    `-- repositories.config

在使用之前我需要做任何额外的步骤吗?

正如您可以从错误消息中推断的那样,您需要使用 #r 指令指定 Fsharp.Data.dll 的正确位置。它可以是相对于您当前目录的,也可以是绝对的。

或者(更简单的 IMO),您可以安装 F# Power Tools 并使用它的 Send To Interactive 功能 - 只需右键单击 References 中的程序集和 select 这个选项。

可能不是最佳解决方案,但为了在交互式 F# 中进行测试,我使用真实路径,例如

#r "packages/FSharp.Data.2.2.5/lib/net40/FSharp.Data.dll"
#r "bin/Debug/FSharp.Data.SQLProvider.dll"