繁体   English   中英

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

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

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

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

严重性代码描述项目文件行抑制状态错误 CS1705 程序集“xxx”,身份为“xxx,版本=1.0.0.0,文化=中性,PublicKeyToken=null”使用“System.Runtime,版本=4.2.0.0,Culture=neutral,PublicKeyToken” =b03f5f7f11d50a3a' 其版本高于引用的程序集 'System.Runtime',标识为 'System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

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

几个选项/问题:

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

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

如果充当主要引用的 NuGet 包引入了特定程序集的较低版本,而这些程序集在较高版本中被引用的项目需要,则也可能发生这种情况。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM