【问题标题】:Adding a nuget that has core references to a an older core project添加具有对旧核心项目的核心引用的 nuget
【发布时间】:2019-04-04 00:50:03
【问题描述】:

我正在创建一个 .NET 标准包,其中包含 Microsoft.AspNetCore.Http nuget 包的 2.1.1 版。

我需要将此 nuget 添加到我们所有的核心项目中,并将其添加到相同版本的测试核心项目中,效果很好,但是当我尝试将其添加到 Microsoft 2.0.6 版本的项目中时.AspNetCore.All 和我遇到版本冲突

用身份“Nuget.Project”组装“Nuget.Project”, 版本=1.0.0.0,文化=中性,PublicKeyToken=null' 使用 'Microsoft.AspNetCore.Http.Abstractions,版本=2.1.1.0, Culture=neutral, PublicKeyToken=xxxxx' 版本高于 引用程序集“Microsoft.AspNetCore.Http.Abstractions” 身份 'Microsoft.AspNetCore.Http.Abstractions,版本 = 2.0.3.0, Culture=neutral, PublicKeyToken=xxxxxx'

出于隐私原因,我将令牌更改为 x,并替换了项目名称。

我的 Nuget 正在访问 HttpContext,因此我需要其中的核心。我不知道如何让 nuget 包可以放在旧版本上。

【问题讨论】:

  • 2.0.6 已过时。您必须将该项目从 .NET Core 2.0 升级到 2.1,这正是发生冲突的原因。
  • Lex,谢谢你的评论。有什么办法可以提高兼容性,使其适用于所有 ASP Core 2.X 项目?这是一个适用于我们所有应用程序的 nuget,如果我们必须在创建新项目时升级所有项目,然后必须将此 nuget 升级到最新的核心,然后必须升级所有其他项目到最新的核心。
  • 在这里谈“ASP.NET Core 2.X”是没有意义的,因为你今天只能使用2.1(2.0已经过时,2.2只是预览版)。
  • 另外,我不会说 2.0.6 已经过时,它只有半年的历史,并且仍然受到 Microsoft 的支持。如果我有一个 ASP Core 1.0 应用程序,那么我会看到更多,但它只是落后于 .1 版本
  • blogs.msdn.microsoft.com/dotnet/2018/06/20/… 前提是您从未阅读过生命周期公告和政策。

标签: c# .net asp.net-core nuget .net-standard


【解决方案1】:

这可能是其他人没有遇到的非常具体的问题,但发布我的修复以防其他人遇到问题。

在我的 nuspec 包中,我没有放置依赖项及其版本。对于具有相同版本 Core 的测试项目,我不需要这样做。我继续并列出了所有依赖项及其版本,并且它有效。我想在使用不同版本的相应软件的网站上安装时会有所不同。

如果这不起作用,我还卸载并重新安装了 Nuget 上的依赖项,如果这对任何人有帮助的话。

虽然,Lex Li 建议我们不要使用已弃用的 Core 版本,对此表示赞成。我会把它写在我的报告中,我们应该升级。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    相关资源
    最近更新 更多