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

C# 使用F#而不使用FSharp.Core.dll引用的可移植类库,c#,f#,portable-class-library,C#,F#,Portable Class Library,我尝试使用F#创建可移植类库,例如可以从C#代码中使用F。但是看起来使用标准的F#构造,比如raise使FSharp.Core.dll成为使用创建的可移植类库所必需的 raise(ArgumentNullException(“参数”))转换为 Operators.Raise<Unit>(new ArgumentNullException("source")); 我假设这不是从FSharp.Core.dll库编译成某种静态方法的唯一F#构造 有没有办法创建编译后不需要引用FSharp

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

raise(ArgumentNullException(“参数”))
转换为

Operators.Raise<Unit>(new ArgumentNullException("source"));
我假设这不是从FSharp.Core.dll库编译成某种静态方法的唯一F#构造


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

--standalone
编译器将执行相当于静态链接的操作。因此,在运行时不需要引用


这可能是您所能做的最好的了。

理想情况下,您应该参考根据特定概要文件构建的FSharp.Core的便携版本,而不是静态链接所有内容


我认为profile 47、88和158有可移植版本。

该引用的问题在哪里?您可能希望查看合并程序集,尽管我不确定这是否适用于PCLs(?)。除此之外,我认为这是不可能的,即使是F#中的函数也不使用
Func
,而是使用
FSharp.Core
中的
FSharpFunc
。对于F#3.0,只有配置文件47;对于F#3.1,只有配置文件47和7。无论如何,只有47是开源的,我认为VS2013打包的158?不,不幸的是,它只有7和47
--standalone