2013-12-18 3 views
2

У меня есть msbuild, который я использую для создания проекта для распределения nuget. Он создает версии .net 3.5, .net 4.0 и .net 4.5 целевых версий моей сборки для легкой упаковки. В окнах это всегда работало отлично, но сейчас я нахожусь в моно, используя xbuild, и все работает, кроме целевой сборки .NET 3.5.Xbuild для создания таргетинга F # 3 .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* 

-

Edit:

Интересно, что я на самом деле получаю ту же ошибку нацеливание мой проект .NET 3.5 в Xamarin Студия. Я не уверен, что это ошибка, или если что-то изменилось, и это не должно работать в первую очередь.

ответ

2

IIRC - последние версии компилятора с открытым исходным кодом F # (размещенного в github) по умолчанию для .NET 4.0. Вам нужно будет скомпилировать F # самостоятельно, чтобы настроить сборку, чтобы она могла установить необходимые .NET 3.5 бит.