Compiler construction 带F的Staticlink vs standalone quirk#

Compiler construction 带F的Staticlink vs standalone quirk#,compiler-construction,f#,linker,Compiler Construction,F#,Linker,在vs2010 ultimate edition中,如果在项目窗格中将--standalone标志传递给f#编译器,则不会将空的C#项目与配置文件/资源文件链接 但是,如果显式声明--staticlink:Config,它将链接程序集 这感觉像一个bug…如果是故意的,我可以问一下为什么会这样吗?这是一个预期的行为: standalone标志静态链接FSharp.Core.dll(F#runtime)和依赖于它的任何引用程序集(即任何其他F#程序集)。它们需要链接,因为它们可能与主程序集共享某

在vs2010 ultimate edition中,如果在项目窗格中将--standalone标志传递给f#编译器,则不会将空的C#项目与配置文件/资源文件链接

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


这感觉像一个bug…如果是故意的,我可以问一下为什么会这样吗?

这是一个预期的行为:

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

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

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