F#脚本无法加载.Net 4.5?

时间:2015-06-04 00:40:07

标签: f# .net-4.5

我有一个使用.Net 4.5 HttpClient的F#库。它编译得很好但是当我在脚本中加载它后尝试调用库中的函数时,脚本说它找不到System.Net.Http。

脚本和库都位于针对.Net 4.5的同一项目中。

库(在TdApi.fs中)执行此打开System.Net.Http; 但是当脚本执行此操作 #load“TdApi.fs”时出现错误交互式窗口是 TdApi.fs(6,17):错误FS0039:未定义命名空间“Http”。

我正在使用VS2012,我刚刚开始使用F#。

1 个答案:

答案 0 :(得分:3)

编译库和脚本文件之间存在差异。

当您将TdApi.fs文件编译为库项目的一部分时,在项目属性中指定依赖项(在您的情况下,HTTP库)。编译器使用fsproj文件来查找依赖项(因此一切编译都很好)。

当您#load脚本中的TdApi.fs文件时,它不了解项目 - 因此它也不知道依赖项。要解决此问题,您可以使用#r "TdApi.dll"其中TdApi.dll是已编译的库,也可以使用以下内容:

#r "someplace/System.Net.Http.dll"
#load "TdApi.fs"

因此,您可以先使用#r显式加载HTTP库,然后TdApi.fs会看到它。