我有一个Xamarin Forms解决方案,包含几个F#便携式类库。
为了使用Microsoft.Azure.MobileClient的最新版本(4.0.0),我需要升级到FSharp.Core 4.2.1,但这似乎与Profile 78不兼容:
无法安装软件包' FSharp.Core 4.2.1'。你正试图 将此包安装到目标项目中 ' .NETPortable,版本= v4.5,Profile = Profile78',但包有 不包含任何程序集引用或内容文件 与该框架兼容。有关更多信息,请联系 包裹作者。
可以使用Xamarin项目中的.NET Standard类库,但是可以在F#中创建.NET Standard类库吗?
这里最好的方法是什么?
答案 0 :(得分:2)
错误消息告诉您的是该项目的目标是PCL目标。 FSharp.Core 4.2.x不再具有PCL目标,仅包含.NET Framework和.NET Standard 1.6二进制文件。两者都不兼容F#在这里使用的目标。
FSharp.Core的发行说明最近更新了开发者指南:https://www.nuget.org/packages/FSharp.Core/
这是您项目的重点:
对于面向.NET Frameworks 4.0或更低版本和PCL的现有软件包,请使用FSharp.Core 4.1或更低版本。
.NET Standard(截至目前)尚未在所有.NET上扩散。正如@Foole所说,你今天可以用F#创建一个.NET Standard类库。但是,除非.NET标准在所有版本的.NET上得到完全支持,否则它与.NET生态系统的其他部分不兼容。
答案 1 :(得分:0)
您可以尝试将Xamarin.Forms(和您的F#)项目从.NET Portable转换为.NET Standard 2.0,因为这两个软件包都可以添加到.NET Standard中。