【问题标题】:F# error FS0039: The type 'XmlProvider' is not definedF# 错误 FS0039:未定义类型“XmlProvider”
【发布时间】:2016-10-30 09:27:39
【问题描述】:

查看了这些解决方案 - 但没有任何效果
The type 'XmlProvider' is not defined
F# Data New type provider library
F# Data: XML Type Provider

open FSharp.Data
type XMLcountries = XmlProvider<"http://api.worldbank.org/country">
let sampleCountries = XMLcountries.GetSample()
let sampleCountries' = XMLcountries.Load("http://api.worldbank.org/country")

使用交互式窗口时,我收到 F# 错误 FS0039:未定义类型“XmlProvider”。 是否有更好的包/库来使用 XML 提供程序(以及 JSON)。

我已将 FSharp.Data 更新到 2.3.1 版

我添加了打开的 FSharp.Data.TypeProviders 以查看是否可行。还是一样的错误。

这非常令人沮丧。

【问题讨论】:

  • 使用交互窗口时”是关键——FSI 需要引用程序集。
  • 您是否安装了 FSLab (fslab.org)?那么你可以说#load @"..\..\FSLAB\packages\FSLAB\FsLab.fsx",你的生活会轻松很多。否则,使用 #r 引用 dll,或者只需右键单击引用并发送到 F# Interactive。

标签: f# type-providers f#-interactive f#-data fslab


【解决方案1】:

你确定你看过F# Data: XML Type Provider吗?因为一开始它说:

#r "../../../bin/FSharp.Data.dll"
#r "System.Xml.Linq.dll"
open FSharp.Data

所以你有几个选择,如果你不想安装 FSlab,第二个对你来说是最简单的。您显然必须调整路径以匹配您的环境。

  1. 下载并安装FSLab,然后参考FSLab
    #load @"..\..\FSLAB\packages\FSLAB\FsLab.fsx"
  2. 在您的脚本中引用 FSharp.Data.dll:
    #r @"..\..\FSLAB\packages\FSharp.Data\lib\net40\FSharp.Data.dll"
  3. 在 Visual Studio 中将 FSharp.Data 添加到您的引用中,然后通过单击将引用发送到 FSI(我希望您已安装 the Visual F# Power Tools)。

【讨论】:

  • 红色波浪线用于#r "../../../bin/FSharp.Data.dll" #r "System.Xml.Linq.dll" FSLAB 和 Powertools 已安装
  • 好吧,您必须指定 FSharp.Data.dll 的实际路径...或者只需将 Dll 添加到 VS 中的引用,然后发送到 F# Interactive。那么你就不需要#r了。
  • 我已将它发送到交互式每个包到交互式,并且我已将#r 关于开放部分
  • 最好能具体说明错误...你能加入 f# 聊天吗?
  • 我得到相同的 F# 错误 FS0039:未定义类型“XmlProvider”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-31
相关资源
最近更新 更多