C# - .net core - 具有比引用程序集更高版本的程序集

时间:2018-03-29 06:45:55

标签: c# xamarin.forms .net-core portable-class-library

我创建了一个使用ADO.net技术的.net核心类库 二手图书馆: 来自nuget的 System.Data.SqlClient版本4.4.3

它在.netcore控制台应用程序中正常工作。但是,当我将它与Xamarin表格PCL一起使用时,会出现以下错误:

  

严重级代码描述项目文件行抑制状态       错误CS1705汇编' xxx' with identity' xxx,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'使用' System.Runtime,Version = 4.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'它的版本高于引用的汇编版本System.Runtime' with identity' System.Runtime,Version = 4.1.2.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'

我试图单独更新System.Runtime库但结果是一样的 如何解决此问题?

3 个答案:

答案 0 :(得分:0)

一些选项/问题:

  1. 尝试合并软件包。
  2. 你有什么警告吗? 这个?
  3. 检查使用此软件包的Xamarin表单PCL库 - 并匹配他们的版本。它们很可能与版本不匹配。

答案 1 :(得分:0)

PCL项目依赖于选定的API表面(配置文件)。 System.Data.SqlClient但是,根据NuGet,不支持任何PCL表面,只支持.NET Standard和其他各种SDK。将您的共享库更改为.NET标准库,该库应该可以正常工作。

答案 2 :(得分:0)

如果作为主要参考的NuGet程序包引入了所引用项目在较高版本中需要的特定程序集的较低版本,则也会发生这种情况。

如果无法通过软件包合并修复它,请尝试将更高版本作为主要参考添加到项目中。如果错误中提到框架程序集,则需要向项目中添加适当的元包(例如Microsoft.AspNetCore.App)作为主要参考。