在哪里告诉 F# 编译器定位程序集?

Where to tell the F# compiler to locate an assembly?

我正在尝试编译一个要使用任意精度有理数的 F# 程序。源代码包含

open MathNet.Numerics

和 MathNet.Numerics 以及 MathNet.Numerics.FSharp 的安装方式让 Visual Studio 满意。现在我正在尝试直接使用 fsc 从命令行编译程序(以便更好地控制正在发生的事情)。显然,编译器需要被告知所引用的程序集。

我试过了

fsc -r:MathNet.Numerics ...

但是它说

error FS0082: Could not resolve this reference. Could not locate the assembly "MathNet.Numerics". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. (Code=MSB3245)

大概我需要使用一些其他选项来告诉 fsc where 查找有问题的程序集。我应该使用哪个选项,我应该提供什么位置? (机器上有很多不同版本的 MathNet.Numerics.dll 副本;目前尚不清楚为此目的应将哪个版本视为规范。)

您可以使用 -r 指定程序集的完整路径,而不仅仅是文件名。对我来说,它看起来像这样:

-r:C:\Users\MyName\.nuget\packages\mathnet.numerics.15.0\lib\netstandard2.0\MathNet.Numerics.dll

或者,您可以使用 -I:folder-name 指定要搜索的目录以查找引用的程序集。

记录了这些编译器选项 here