fsharpc 无法生成 fsi 文件

Fsharpc cannot generate fsi files

我正在尝试为特定的 fs 文件生成 fsi 文件。

Config.fs:

namespace Web2

open FSharp.Data

module Config =

  type JsonConfig =
    JsonProvider<Sample="./config.json">

  let config =
    JsonConfig.Load("./config.json")

正在生成签名文件:

fsharpc --sig:Config.fsi Config.fs

错误:

Microsoft (R) F# Compiler version 10.2.3 for F# 4.5
Copyright (c) Microsoft Corporation. All Rights Reserved.

Config.fs(8,5): error FS0039: The type 'JsonProvider' is not defined.
Config.fs(8,5): error FS0039: The type 'JsonProvider' is not defined.
Config.fs(11,16): error FS0039: The field, constructor or member 'Load' is not defined.

不确定我做错了什么。

问题是 Config.fs 中的代码依赖于来自 FSharp.Data.dll 库的 JsonProvider - 但是当您调用编译器时,您没有指定依赖项。

您可以使用 -r 命令行选项来做到这一点:

fsharpc -r:whatever/folder/FSharp.Data.dll --sig:Config.fsi Config.fs

一般来说,如果您正在编译一个项目,引用在项目文件中指定,因此您不需要在其他地方指定它们。但是当你直接调用编译器时,你需要这样做。