F# .NET标准库项目

3

我有一个 Xamarin Forms 解决方案,其中包含几个 F# 可移植类库。

为了使用最新版本(4.0.0)的 Microsoft.Azure.MobileClient,我需要升级到 FSharp.Core 4.2.1,但是这似乎与 Profile 78 不兼容:

无法安装程序包 'FSharp.Core 4.2.1'。您正在尝试将此程序包安装到目标为 '.NETPortable,Version=v4.5,Profile=Profile78' 的项目中,但该程序包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系程序包作者。

可以从 Xamarin 项目中使用 .NET Standard 类库,但是是否可以创建一个 F# 的 .NET Standard 类库呢?

在这里前进的最佳方法是什么?


1
我不知道在Xamarin项目中是否可以使用.NET Standard,但是你可以使用F#创建.NET Standard库。"dotnet new classlib -lang F#" - Foole
2个回答

2
该错误信息告诉您的是项目所针对的是PCL目标。 FSharp.Core 4.2.x 不再有PCL目标,仅包含.NET Framework和.NET Standard 1.6二进制文件。 两者都与此处F#使用的PCL目标不兼容。
FSharp.Core的发行说明最近更新了开发人员指南:https://www.nuget.org/packages/FSharp.Core/ 这是您的项目的重要部分:
对于已经针对 .NET Framework 4.0 或更低版本以及 PCLs 的现有包,请使用 FSharp.Core 4.1 或更低版本。
.NET Standard(截至目前)尚未在所有 .NET 领域普及。 正如@Foole所说,今天确实可以使用F#创建.NET Standard类库。 但在.NET Standard完全支持所有.NET版本之前,它与.NET生态系统的其余部分不兼容。

这似乎是自你回答之后发生了变化,因为你现在添加的链接提到了netstandard1.6 (netstandard1.6) - ympostor

0

您可以尝试将您的Xamarin.Forms(和F#)项目从.NET Portable转换为.NET Standard 2.0,因为这两个包都可以添加到.NET Standard中。

如何将Xamarin.Forms转换为.NET Standard

  • 创建新的Xamarin.Forms项目(如果已经创建则跳过)
  • 在同一解决方案中创建新的.NET Standard库项目
  • 添加对Xamarin.Forms包的引用
  • 将Xamarin.Forms共享项目中的内容复制到新的库项目中
  • 更改所有引用(来自Android、iOS、UWP)以指向库项目而不是共享项目

来源:Xamarin Blog


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接