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

但是,如果您显式声明--staticlink:Config,它将链接程序集。

感觉像是个 bug ...如果是故意的,请问为什么会这样?

最佳答案

这是预期的行为:

  • 独立标志静态链接FSharp.Core.dll(F#运行时)和任何依赖于它的引用程序集(即任何其他F#程序集)。它们需要链接,因为它们可能与主程序集共享某些类型(例如F#list类型等)。
  • 静态链接标志链接您显式指定的任何程序集(以及依赖于此程序集的任何程序集)。这意味着您可以使用该选项链接例如主F#程序集引用的C#库。

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

    关于compiler-construction - Staticlink与F#的独立怪癖,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5630902/

    10-09 09:03