#load无法加载共享.fsx

时间:2017-03-27 11:50:28

标签: azure f# azure-functions

为什么没有#load工作

我已经在同一个文件夹和相关文件夹中尝试了它,如下所示

我错过了什么?

run.fsx是

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

shared.fsx是

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

错误是

{{1}}

1 个答案:

答案 0 :(得分:6)

如果未在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)

如果您想自己控制命名,您还可以在module中添加shared.fsx声明,并自行提供明确的名称:

module SharedStuff

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