脚本无法识别FSharp.Data

时间:2013-05-02 17:10:18

标签: f# f#-interactive f#-data

有点像F#初学者。我试图在交互式窗口中测试我的一些XmlTypeProvider代码,首先在脚本(fsx)文件中输入它。脚本文件将无法识别以下

open FSharp.Data  // gives "The namespace or module 'FSharp' is not defined"

所有内容都已添加到引用中,.fs文件似乎没有找到XmlTypeProvider引用的任何问题但由于某种原因,同一项目中的脚本没有。我甚至让代码在.fs文件中工作。

我用nuget添加了FSharp.Data,一切似乎都正确添加。我在这里缺少什么?

2 个答案:

答案 0 :(得分:9)

将脚本中的引用添加到包含FSharp.Data.dll的nuget packages文件夹中。该文件夹还包含设计器dll(FSharp.Data.DesignTime.dll)

#r @"<your nuget packages folder>\FSharp.Data.2.1.0\lib\net40\FSharp.Data.dll"

答案 1 :(得分:5)

顺便说一下,我上周刚刚调试了这个错误。基本上有三个原因:

  • 无法找到该文件。最明显的一点是F#实际上找不到dll文件。确保引用正确(检查项目属性中的引用)或确保#r指向正确的文件(使用F#脚本文件时)

  • 类型提供程序不受信任。类型提供程序被Visual Studio阻止。如果您在第一次加载提供程序时单击“禁用”,则会发生这种情况。要解决此问题,请转到“工具” - “选项” - “F#工具” - “类型提供程序”并启用类型提供程序(选中“受信任”)。

  • 操作系统阻止了DLL。最后,如果dll来自不受信任的来源,Windows可能会阻止它(特别是如果您下载{{1}使用Windows文件并解压缩文件。要取消阻止文件,请转到文件属性,然后单击“取消阻止”。有good description here.