【问题标题】:C# - .net core - Assembly which has a higher version than referenced assemblyC# - .net core - 具有比引用程序集更高版本的程序集
【发布时间】:2018-09-08 00:46:48
【问题描述】:

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

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

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

我尝试单独更新 System.Runtime 库,但结果相同。
如何解决此问题?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我想在跨平台应用中使用它。在这种情况下我该如何使用它?
    • .NET Standard 基本上正在取代 PCL。微软recommending 根本不使用 PCL。
    • 除了 Silverlight 和带有 .NET Standard 的 Windows Phone 8.x 之外,几乎所有地方都替换了 PCL。这包括 .NET Framework、.NET Core、Mono、Unity3D、Xamarin 和 UWP 的所有最新版本。考虑到 PCL(Silverlight 和 Xamarin)的现有实际应用及其快速更新,我们可以预期 PCL 概念将在两三年内几乎消亡。
    【解决方案2】:

    几个选项/问题:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-11-03
        • 1970-01-01
        • 2013-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-18
        • 2010-10-14
        • 2018-09-30
        相关资源
        最近更新 更多