C# - .net 核心 - 版本高于引用程序集的程序集

C# - .net core - Assembly which has a higher version than referenced assembly

我创建了一个使用 ADO.net 技术的 .net 核心 class 库。
使用的库: System.Data.SqlClient 版本 4.4.3 来自 nuget

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

Severity Code Description Project File Line Suppression State Error CS1705 Assembly 'xxx' with identity 'xxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Runtime' with identity 'System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

我尝试单独更新 System.Runtime 库,但结果是一样的。
如何解决这个问题?

几个 options/questions:

  1. 尝试整合包。
  2. 您是否收到任何关于 这个?
  3. 检查使用此包的 Xamarin 表单 PCL 库 - 并匹配他们的版本。很有可能是版本不匹配。

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

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

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