2017-03-27 8 views
5

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

注意 - あなたは { \t「watchDirectories」:[「共有」、「共有-FS」] }設定するhost.jsonを編集していることを確認してください –

答えて

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) 

あなたが命名を自分でコントロールしたい場合は、あなたもshared.fsxmodule宣言を追加し、明示的な名前を自分で与えることができます:

module SharedStuff 

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

おかげでトーマスを - それは 明らかではないが、少しですまた、ファイル名の大文字と小文字を区別するために、ファイル名の大文字と小文字を区別しています。 –

+0

@DavidLapešはい、F#は最初の文字を大文字にします - ルールが何であるかはわかりませんので、明示的なモジュール名を使用することは常により安全です:) –