1

只是试图构建一个 F# 库。到目前为止,它“看起来”是:

  • 我只能从 .fs 源文件中引用 C# 库,

  • 和 .fs 源文件不可用于 .fsx 脚本文件。

这些陈述是否正确?我读的例子说只使用一个打开,但这只能从 .fs 文件中使用。

有没有版本

#r "System.Drawing.dll"

对于在同一个项目中通过 f# interactive (fsi) 使用的脚本文件?

另外,我发现顶级模块和低级模块之间的语法差异有点奇怪。顶我,顶层没有平等是很奇怪的。

module Utilities

    module et =

为什么不保持一致并且对所有内容都使用“module moduleName =”?

4

1 回答 1

5

请务必注意,F# 中 Visual Studio 中的“引用”仅适用于当前项目。如果您在脚本文件中工作,它不会看到项目引用的库。

要在脚本文件(例如Script.fsx)中引用库,您可以编写(可以使用绝对路径和相对路径):

#r @"C:\<path_to_library>\library.dll"

如果您想Library.fs从脚本文件加载不是脚本的文件(例如 ),您可以使用:

#load "Library.fs"

fs文件本身不能包含类似 的指令,#r因此如果文件正在使用一些需要引用的库,则需要#r在主脚本文件中有一个指令(在加载源文件之前引用该库)。

至于模块不一致,主要是在使用module Fooornamespace Foo顶层的时候,不需要缩进文件的其余部分:

module Foo

let bar = 10
module Sub = 
  let bar = 12
于 2013-04-19T13:28:16.020 回答