Ошибка mscorlib при использовании .NET 4 на Mono с использованием Mac OSX - PullRequest
3 голосов
/ 07 августа 2011

У меня есть проект F #, для которого я хотел бы использовать .NET 4 (для System.Numerics). Однако, когда я пытаюсь скомпилировать в .NET 4 (я использую MonoDevelop), я получил ошибку:

unknown-file: Ошибка 0: предупреждение FS0217: базовая библиотека CLI по умолчанию или библиотека по умолчанию «mscorlib» несовместима с указанной библиотекой в ​​двоичном формате »/Library/Frameworks/Mono.framework/Versions/2.10.1/lib/mono /4.0/System.dll. Попробуйте перекомпилировать библиотеку или сделать явную ссылку на версию этой библиотеки, которая соответствует используемой вами версии CLI. (0) (ApproximationSuite)

Кто-нибудь знает, как я могу обойти это?

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

Сделайте явную ссылку на mscorlib, версия 4, например:

<Reference Include="mscorlib" />

Затем может появиться другая, похожая ошибка (что вы не совместили FSharp.Core).Это потому, что это не 4.0 версия этой библиотеки.Однако вам не нужно перекомпилировать, так как вы можете найти скомпилированную версию в подкаталоге v4.0 из пакета, подобного this (обратите внимание, что его скрипт не устанавливает v4.0 в gac).Если вы поместите версию 4.0 в место, где ее ищет MonoDevelop (вероятно, / usr / lib / fsharp /), она должна хорошо скомпилироваться.

1 голос
/ 08 августа 2011

Вы можете перекомпилировать FSharp.Core.dll и fsc.exe, нацелив его на версию 4.0, а затем использовать этот FSharp.Core.dll. Должно сработать. Я предполагаю, что это работало для вас в 2.0. Если нет, пожалуйста, дайте некоторые подробности о проекте (может быть, часть fsprojs?).

...