#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
为什么#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