F#:为什么脚本文件无法识别模块?

F#: Why does script file not recognize module?

我在 Visual Studio 2015 年创建了一个新的 F# 控制台应用程序项目 我创建了一个名为 Calc.fs 的简单新模块文件,如下所示:

module Calc

let add a b = a + b

我将 F# 脚本文件添加到项目中,如下所示:

open Calc

let c = add 1 2 

我在脚本文件中遇到以下编译器错误:

The namespace or module 'Calc' is not defined

The value or constructor 'add' is not defined

为什么我的脚本文件无法识别我的模块?我该如何解决这个问题?

请注意,我的脚本文件按照项目中文件的顺序出现在模块之后:

.fsx 文件没有与项目的其余部分一起编译;他们不会 "know" 任何其他代码,除非您明确告知他们。对于任何外部 DLL(事实上什至 .NET Framework 中的很多)以及其他 F# 代码都是如此。

您需要添加

#load "Calc.fs"

在脚本文件的顶部告诉编译器在评估脚本的其余部分之前加载该代码。