我正在尝试以交互方式在fsx文件中运行我的代码。我已经加载了所有必需的dll,然后尝试使用#load加载所需的文件,但是当我加载“Utlities.fs”文件时,它取决于顶层文件“HttpGetExchangeRate.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"
这是错误消息的图像
答案 0 :(得分:3)
如果我正确理解您的场景,这是由于FSI中如何处理命名空间的错误。解决方法是在open
第二个文件之前#load
#load "HttpGetExchangeRate.fs"
open InvoiceApp
#load "Utilities.fs"
命名空间
{{1}}
这应该让你现在解锁,错误has since been fixed(F#4.0 / VS 2015将有修复)。
答案 1 :(得分:0)
听起来你在fsi中使用隐式模块遇到了这个问题中描述的问题。