#load 无法加载共享的 .fsx

#load fails to load shared .fsx

为什么#load 不起作用

我已经在同一个文件夹和下面的相对文件夹中试过了

我错过了什么?

run.fsx 是

#load "../shared/shared.fsx"
let key = "MyKey"

let Run(message: string, log: TraceWriter, result: byref<string>) =
    result <- doItAll message key

    log.Info(sprintf "F# results: %s" result)

shared.fsx 是

let doItAll message key = key + " has handled " + message

错误是

run.fsx(x,y): error FS39: The value or constructor 'doItAll' is not defined

如果您没有在 shared.fsx 中显式指定命名空间或模块名称,则 F# 编译器会将文件中的代码放入一个隐式命名的模块 Shared 中。您应该可以通过添加 open Shared:

来修复错误
#load "../shared/shared.fsx"
open Shared

let key = "MyKey"

let Run(message: string, log: TraceWriter, result: byref<string>) =
    result <- doItAll message key    
    log.Info(sprintf "F# results: %s" result)

如果想自己控制命名,也可以在shared.fsx中加入module声明,自己给一个明确的名字:

module SharedStuff

let doItAll message key = key + " has handled " + message