Staticlink против автономной причуды с F # - PullRequest
5 голосов
/ 12 апреля 2011

В версии vs2010 Ultimate, если вы передадите флаг --standalone компилятору f # на панели проектов, он не будет связывать пустой проект C # с файлами конфигурации / файлами ресурсов

Однако он будет ссылатьсясборка, если вы явно объявите --staticlink: Config

Это похоже на ошибку ... если это намеренно, могу я спросить, почему это будет?

1 Ответ

11 голосов
/ 12 апреля 2011

Это ожидаемое поведение:

  • Флаг standalone статически связывает FSharp.Core.dll (время выполнения F #) и любые ссылочные сборки, которые зависят от него (т.е.любые другие сборки F #).Их необходимо связать, поскольку они могут совместно использовать некоторые типы с основной сборкой (например, тип F # list и т. Д.)

  • Флаг staticlink связывает любую сборку, котораяВы явно указываете (и любые сборки, которые зависят от него).Это означает, что вы можете использовать эту опцию, чтобы связать, например, библиотеку C #, на которую ссылается ваша основная сборка F #.

Я думаю, что эти два случая обрабатываются отдельно, потому что для вставки среды выполнения F # требуетсянемного особая обработка (почти весь код F # использует его каким-то образом, и компилятор, вероятно, обрабатывает его по-другому)

...