使用F#而不使用FSharp.Core.dll引用的可移植类库

时间:2014-01-24 06:50:53

标签: c# f# portable-class-library

我尝试使用F#创建可移植类库,例如可以使用C#代码。但看起来像使用标准的F#构造,如raise使 FSharp.Core.dll 成为使用已创建的可移植类库所必需的。

raise(ArgumentNullException("parameter"))转换为

Operators.Raise<Unit>(new ArgumentNullException("source"));

(其中Operators.Raise位于Microsoft.FSharp.Core命名空间中)而不仅仅是

throw new Exception

我认为这不是唯一一个从 FSharp.Core.dll 库编译成静态方法的F#构造。

有没有办法创建F#代码(特别是可移植类库),编译后不需要引用 FSharp.Core.dll 或任何其他 FSharp特定的库?

2 个答案:

答案 0 :(得分:13)

如果使用

编译代码
--standalone

编译器将执行等效的静态链接。因此,在运行时不需要引用。

这可能是你能做的最好的事情。

答案 1 :(得分:1)

理想情况下,您将引用已针对特定配置文件构建的FSharp.Core的可移植版本,而不是静态链接所有内容。

我认为有便携式版本的配置文件47,88和158。