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

Enums F#库中的枚举类型在链接程序中不可见,enums,f#,static-libraries,Enums,F#,Static Libraries,在我构建下面的库并将一个程序与其链接后,链接到库的程序可以看到函数libInit、driveList和freeSpace,这就是我所期望的 我不知道如何引用库中包含的枚举。枚举是否可见,或者是否可以使它们对链接程序可见,如果是,它们是如何引用的 namespace Toa.volLib open System open System.Threading open System.Collections.Generic open System.Text open System.IO open Mic

在我构建下面的库并将一个程序与其链接后,链接到库的程序可以看到函数
libInit
driveList
freeSpace
,这就是我所期望的

我不知道如何引用库中包含的枚举。枚举是否可见,或者是否可以使它们对链接程序可见,如果是,它们是如何引用的

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 
名称空间Toa.volLib
开放系统
开放系统。线程
open System.Collections.Generic
开放系统.Text
开放系统
打开Microsoft.Win32
[]
模块库=
类型电压类型=GB=1000000000L |最小值c=5000000000L |最小值d=1000000000L
设libInit=ref false
让driveList()=
DriveInfo.GetDrives()
让自由空间驾驶=
让di=驱动器信息(驱动器)
di.AvailableFreeSpace

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

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

let accessEnum = volTypes.GB
let accessUnion = GB2
这与使用F#区分的联合类型不同。如果你定义一个像

type volUnion = 
    | GB2
    | Min_c2
    | Min_d2
然后,您可以仅通过名称访问每个案例,如:

let accessEnum = volTypes.GB
let accessUnion = GB2

将枚举移到模块外部。@Gustavo但如何从链接程序引用它们?像往常一样,单击“添加引用”,浏览,选择dll。。。否则,这有什么特别之处?您是否尝试过我关于枚举的建议?您是否可以编辑问题以包含尝试访问枚举的代码?