#load无法加载共享.fsx

问题描述:

为什么不#load工作#load无法加载共享.fsx

我已经试过了在同一文件夹,并在相对的文件夹,如下

我缺少什么?

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 
+0

注 - 确保你已经编辑了host.json设置 { \t“watchDirectories”:“共享”,“共享FS”] } –

如果你不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 
+0

感谢托马斯 - 这是有点说不清楚 同样为了澄清它是文件名前面的大S,而不考虑文件名的情况。 –

+0

@DavidLapeš是的,F#大写第一个字母 - 我不太清楚规则是什么,所以使用明确的模块名称总是一个更安全的选项:) –