我尝试使用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特定的库?
答案 0 :(得分:13)
如果使用
编译代码--standalone
编译器将执行等效的静态链接。因此,在运行时不需要引用。
这可能是你能做的最好的事情。
答案 1 :(得分:1)
理想情况下,您将引用已针对特定配置文件构建的FSharp.Core的可移植版本,而不是静态链接所有内容。
我认为有便携式版本的配置文件47,88和158。