Xbuild для сборки F# 3 для.NET 3.5
У меня есть msbuild, который я использую, чтобы построить проект для распространения nuget. Он собирает целевые версии моей сборки.net 3.5, .net 4.0 и.net 4.5 для упрощения упаковки. В Windows это всегда прекрасно работало, но сейчас я использую xbuild в моно, и все работает, кроме целевой сборки.NET 3.5.
Я получаю ошибку как
/Users/akropp/Projects/code/ParsecClone/combinator.msbuild.proj (default targets) ->
(Build target) ->
/Users/akropp/Projects/code/ParsecClone/Combinator/Combinator.fsproj (default targets) ->
/Library/Frameworks/Mono.framework/Versions/3.2.5/lib/mono/4.0/Microsoft.FSharp.Targets (CoreCompile target) ->
: error FS0219: The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced F# core library '/Library/Frameworks/Mono.framework/Versions/3.2.5/lib/mono/gac/FSharp.Core/4.3.0.0__b03f5f7f11d50a3a/FSharp.Core.dll'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using.
: error FS0218: Unable to read assembly '/Library/Frameworks/Mono.framework/Versions/3.2.5/lib/mono/gac/FSharp.Core/4.3.0.0__b03f5f7f11d50a3a/FSharp.Core.dll'
0 Warning(s)
2 Error(s)
Не уверен, что мне не хватает, так как сборка читаема для всех остальных целей.
Просто чтобы быть уверенным, файл существует
>ls /Library/Frameworks/Mono.framework/Versions/3.2.5/lib/mono/gac/FSharp.Core/4.3.0.0__b03f5f7f11d50a3a/FSharp.Core.*
-rwxr-xr-x 1 root admin 1104896 Nov 14 15:14 /Library/Frameworks/Mono.framework/Versions/3.2.5/lib/mono/gac/FSharp.Core/4.3.0.0__b03f5f7f11d50a3a/FSharp.Core.dll*
-rwxr-xr-x 1 root admin 353617 Nov 14 15:18 /Library/Frameworks/Mono.framework/Versions/3.2.5/lib/mono/gac/FSharp.Core/4.3.0.0__b03f5f7f11d50a3a/FSharp.Core.optdata*
-rwxr-xr-x 1 root admin 488574 Nov 14 15:18 /Library/Frameworks/Mono.framework/Versions/3.2.5/lib/mono/gac/FSharp.Core/4.3.0.0__b03f5f7f11d50a3a/FSharp.Core.sigdata*
-rwxr-xr-x 1 root admin 592077 Nov 14 15:18 /Library/Frameworks/Mono.framework/Versions/3.2.5/lib/mono/gac/FSharp.Core/4.3.0.0__b03f5f7f11d50a3a/FSharp.Core.xml*
-
Редактировать:
Интересно, что на самом деле я получаю ту же ошибку при настройке моего проекта на.NET 3.5 в Xamarin Studio. Я не уверен, если это ошибка или что-то еще изменилось, и это не должно сработать в первую очередь.
1 ответ
IIRC последние версии компилятора F# с открытым исходным кодом (который находится на github) по умолчанию.NET 4.0. Вам нужно будет скомпилировать F# самостоятельно, чтобы настроить сборку, чтобы она могла установить необходимые.NET 3.5 биты.