【问题标题】:Add a reference to a class library which target .NET standard 2.0 to a Xamarin PCL which targets .NET Standard 4.5将对面向 .NET Standard 2.0 的类库的引用添加到面向 .NET Standard 4.5 的 Xamarin PCL
【发布时间】:2018-05-01 22:44:53
【问题描述】:

我正在构建一个 Xamarin 应用程序,并且我的共享代码位于一个面向 .NET 4.5 框架的 PCL 中。我还有一个库,它基本上在另一个库中实现了我的 Xamarin 应用程序的服务访问层,该库以 .NET 标准 2.0 为目标。

问题是当我尝试引用后者时,Visual Studio 给了我以下错误:

项目 [服务访问库] 以“.NETStandard,Version=v2.0”为目标。它不能被以 '.NETPortable,Version=v4.5,Profile=Profile111' 为目标的项目引用。

我不明白为什么,因为据我了解,.NET 标准的抽象级别低于 .NET 4.5 框架。任何见解将不胜感激。

【问题讨论】:

    标签: .net xamarin portable-class-library .net-standard


    【解决方案1】:

    不,支持 .net 标准 2.0 的 .net 框架的最低版本是 .net 4.6.1(带有 .net core 2.0 工具 vs 2017.3+)。无论您使用什么工具,.Net 4.7.1 都真正支持 .net 标准 2.0。

    .net standard 2.0 API面很大,实体框架core 2.0和asp.net core 2.0都是基于.net standard 2.0 apis开发的。

    请注意,pcl 配置文件 111 代表 .net 4.5 和 Windows 8.1,它们共同支持 .net 标准 1.1。

    由于最新的 xamarin forms 2.5 支持 .net standard 2.0,我建议您停止使用 PCL 项目,并在任何地方使用 .net standard 2。

    https://github.com/ysmoradi/ToDo 使用 .net 标准 2 和 ef core 2 + SQL lite 使用 xamarin 表单检查我的 to do 示例应用程序,该应用程序针对 android 和 iOS

    您还可以针对 .net 框架库的 nuget 包,例如 https://github.com/davideicardi/DynamicExpresso 它适用于移动设备,但它仅针对 .net 框架。以前不能用,现在可以了。

    如果您想将 pcl 库的 nuget 包添加到您的项目中,请查看https://github.com/ysmoradi/ToDo/blob/master/src/ToDo/ToDo.csproj#L5

    所以,更新到 xamarin forms 2.5,用 .net 标准 2.0 替换你的 pcl 就可以了 :)

    Visual Studio 2017.5 使用 .net 标准而不是 pcl 创建项目,因为这是未来。

    【讨论】:

      猜你喜欢
      • 2018-01-30
      • 2017-05-15
      • 2018-06-09
      • 2019-03-11
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      相关资源
      最近更新 更多