【问题标题】:NuGet Package Manager does not install package with highest depencency version?NuGet 包管理器不安装依赖版本最高的包?
【发布时间】:2019-11-05 17:08:29
【问题描述】:

这一定是我正在使用的 NuGet 包管理器(版本 4.6.0)的错误。我使用了选项DependencyVersion highest,但它总是为依赖项选择最低版本。

像这样(我正在尝试使用 2.2.0 的依赖项安装 Serilog.AspNetCore - 总是选择最新但 2.0.0)。

install-package Serilog.AspNetCore -DependencyVersion highest

它选择的一个依赖项是Microsoft.AspNetCore.Http.Abstractions 2.0.0,但我希望它选择Microsoft.AspNetCore.Http.Abstractions 2.2.0。 这很重要,因为在我的项目中需要 2.2.0 版本,Serilog 应该通过安装正确版本的依赖项来适应该要求。但是在这里我无法帮助它理解我想要什么。

安装和更新选项也没有显示在 NuGet 包管理器的 UI 中(使用 UI 安装包时也可以在其中选择 DependencyVersion )。因此,至少在我正在使用的特定版本的 Nuget 包管理器中,这似乎是一些错误。

我能做些什么来解决这个问题?我可以尝试修复已安装的 nuget 管理器(更新窗口中没有任何更新)。谢谢!

更新

我刚刚尝试了一个传统的 .NET 项目,它可以工作。但是当我的项目以 .NET Core (ASP.NET Core) 为目标时出现的问题?看起来它不支持 .NET Core 项目的该功能?

【问题讨论】:

  • 嗨朋友,这个问题有什么更新吗? DependencyVersion 不支持使用 packageReference 格式的项目,但也许你可以试试我的更新。希望它有所帮助:)

标签: visual-studio .net-core nuget


【解决方案1】:

DependencyVersion switch 用于控制 NuGet 查找补丁版本时的行为。好像是在NuGet 2.8之后才引入的,但是我们要知道的一点是this option only supports packages.config format

有两种包管理格式:Projects.configPackageReference

1.对于传统的.net项目:可以使用Packages.configPackageReference来管理其nuget包。但是默认它使用packages.config

2.对于.net核心项目(使用新的SDK格式的项目文件):它使用新的PackageReference格式作为其包管理格式。

更多详情见:Project Type Support

有人在 github 上发布了此功能请求,请参阅问题 here。希望对您有所帮助。

更新:

我预计它会选择 Microsoft.AspNetCore.Http.Abstractions 2.2.0

先尝试删除bin和obj文件夹,

然后进入Tools menu=>Nuget Package Manager=>Package Manager Settings=>Clear All Nuget Caches。(有时会删除C:\Users\lancel\.nuget\packages中的packages文件夹,我们需要手动新建一个packages文件夹)

然后在安装Serilog.AspNetCore 包之前单独安装Microsoft.AspNetCore.Http.Abstractions 2.2.0 package。构建应用程序,您可以通过设置 CopyLocalLockFileAssemblies 检查输出 .dll。在我的机器中,它成功引用了 Microsoft.AspNetCore.Http.Abstractions.dll 的 2.2.0 版本。希望对你有帮助:)

【讨论】:

  • 实际上我不小心让它正确安装,但实际上并没有记住确切的步骤。这就是为什么我不再关心这个问题了。有一个步骤我无意中尝试了“清除所有 nuget 缓存”。这让我等了很长时间才重新获取所有内容。然而,这一次我之前使用的 nuget cmd(使用依赖版本)以某种方式工作。没有你描述的那么复杂。虽然可能有一些我不记得的缺失步骤。无论如何感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2014-07-19
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 2021-12-18
相关资源
最近更新 更多