F# 错误FS0039:字段、构造函数或成员';X';没有定义

F# 错误FS0039:字段、构造函数或成员';X';没有定义,f#,f#-interactive,F#,F# Interactive,我试图在fsx文件中以交互方式运行代码。我已经加载了所有必需的DLL,然后我尝试用#load加载必需的文件,但是当我加载依赖于顶部文件“HttpGetExchangeRate.fs”中的函数的“Utlities.fs”文件时,我得到错误“Utilities.fs(88,42):错误FS0039:未定义字段、构造函数或成员“getExchangeRates” 当我加载如下图所示的“HttpGetExchangeRate.fs”时,是否没有定义“getExchangeRates”,或者我遗漏了什么

我试图在fsx文件中以交互方式运行代码。我已经加载了所有必需的DLL,然后我尝试用#load加载必需的文件,但是当我加载依赖于顶部文件“HttpGetExchangeRate.fs”中的函数的“Utlities.fs”文件时,我得到错误“Utilities.fs(88,42):错误FS0039:未定义字段、构造函数或成员“getExchangeRates”

当我加载如下图所示的“HttpGetExchangeRate.fs”时,是否没有定义“getExchangeRates”,或者我遗漏了什么

#load "HttpGetExchangeRate.fs"
#load "Utilities.fs"

open System
open FsCheck
open NUnit.Framework
open HttpClient

InvoiceApp.Http.getExchangeRates "EUR" "USD"

InvoiceApp.Math.convertInvoicingCurrencyToEuro 200.00M "EUR"
下面是错误消息的图像

听起来您遇到了本问题中所述的问题,fsi中包含了隐式模块


如果我正确理解了您的场景,这是由于FSI中处理名称空间的错误造成的。解决方法是在加载第二个文件之前,
打开所需的命名空间

#load "HttpGetExchangeRate.fs"
open InvoiceApp
#load "Utilities.fs"
这应该可以让你暂时解除障碍,这个bug(F#4.0/VS 2015将得到修复)