【问题标题】:.NET Core 3 (Preview) - Package version conflicts.NET Core 3(预览版)- 包版本冲突
【发布时间】:2019-07-02 14:00:59
【问题描述】:

我的 .NET Core 应用程序中目前有以下包。

<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.0.0-preview6.19307.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0-preview5-19227-01" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.0.0-preview5-19227-01" />

我正在尝试添加一些日志记录。

https://www.nuget.org/packages/Microsoft.Extensions.Logging.EventLog/3.0.0-preview6.19304.6

但是当我尝试时,我收到以下错误消息...

检测到的包降级:Microsoft.NETCore.Platforms 来自 3.0.0-preview6.19303.8 到 3.0.0-preview5.19224.8。直接从项目中引用包来选择不同的版本。

MyApp -> Microsoft.Extensions.Logging.EventLog 3.0.0-preview6.19304.6 -> System.Diagnostics.EventLog 4.6.0-preview6.19303.8 -> Microsoft.NETCore.Platforms (>= 3.0.0-preview6.19303.8)

MyApp -> Microsoft.NETCore.Platforms (>= 3.0.0-preview5.19224.8)

谁能给点建议?

【问题讨论】:

  • 第一条规则,不要混合包版本。第二条规则:不要混合包版本;)使用所有包作为 preview5 或 preview6,而不是两者,因为每个包都会拉出很多其他依赖项。如果您以/安装了 .NET Core preview6 为目标,请使用所有 preview6 包。预览也一样5
  • @Tseng 我让你失望了。实际上,我确实将它们全部升级到了 preview6,但回滚到这里发布了一个更干净的版本。但是,它仍然想将我的平台降级为 preview5。但是,我刚刚发现 SDK 是 preview5,而不是 preview6。我现在会解决这个问题。谢谢!

标签: asp.net-core


【解决方案1】:

简单地说,错误意味着一个或多个包引用实际上已经引用了您的其他包引用之一。在这种情况下,几乎可以肯定Microsoft.AspNetCore.Mvc.NewtonsoftJson,您的其他两个引用中的一个或两个实际上已经引用了这个包。但是,由于它们具有更高的预览版本,因此它们也引用了更高的预览版本 NewtonsoftJson,并且您对更低预览版本的显式项目引用导致“降级”。

解决方案很简单:1) 将您的项目引用更新为最新版本,使其与其他包中的内部引用匹配,或者 2) 完全删除包引用。如果该包已经作为另一个包的依赖项引入,您也可以通过现有引用使用它;您不需要自己显式引用它。

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    相关资源
    最近更新 更多