使用F#的Staticlink vs独立怪癖

时间:2011-04-12 05:47:11

标签: compiler-construction f# linker

在vs2010终极版中,如果将--standalone标志交给项目窗格中的f#编译器,它将不会将空C#项目与配置文件/资源​​文件链接

但是,如果您明确声明--staticlink:Config

,它将链接程序集

这感觉就像一个错误...如果它是有意的,请问为什么会这样?

1 个答案:

答案 0 :(得分:11)

这是预期的行为:

  • 独立标志静态链接FSharp.Core.dll(F#运行时)和依赖它的任何引用程序集(即任何其他F#程序集)。它们需要链接,因为它们可能与主要程序集共享某些类型(例如F#list类型等)。

  • staticlink 标志链接您明确指定的任何程序集(以及依赖它的任何程序集)。这意味着您可以使用该选项链接,例如,主要F#程序集引用的C#库。

我认为这两种情况是分开处理的,因为内联F#运行时需要稍微特殊的处理(几乎所有的F#代码都以某种方式使用它,编译器可能会以不同的方式处理它)