F# 库中的枚举类型在链接程序中不可见

Enum Type in F# Library Not Visible in Linked Program

在我构建下面的库然后 link 使用它的程序之后,函数 libInitdriveListfreeSpace 对程序可见 link去了图书馆,这是我所期望的。

我不知道如何引用库中包含的枚举。枚举是可见的还是可以让 linked 程序可见,如果是,它们是如何被引用的?

namespace Toa.volLib
open System
open System.Threading
open System.Collections.Generic
open System.Text
open System.IO
open Microsoft.Win32

[<AutoOpen>]
module volLib =
    type volTypes = GB = 1000000000L | Min_c = 5000000000L | Min_d = 10000000000L

    let libInit = ref false

    let driveList () = 
        DriveInfo.GetDrives()

    let freeSpace drive =
        let di = DriveInfo(drive)
        di.AvailableFreeSpace 

如果 libInit 和模块中的其他函数可见,则表示您已正确链接库。

如果您尝试访问枚举,则需要在其前面加上枚举名称,例如:

let accessEnum = volTypes.GB

这与您可以使用 F# 区分联合类型执行的操作不同。如果你定义一个像

这样的联合
type volUnion = 
    | GB2
    | Min_c2
    | Min_d2

然后您可以仅通过其名称访问每个案例,例如:

let accessUnion = GB2