繁体   English   中英

Nuget Package 管理问题 - 无法更新特定项目中的 package

[英]Nuget Package Management issue - Unable to update the package in specific project

在编译 Visual Studio 解决方案时,我收到以下错误。 我的具体项目正在寻找更高版本(3.14.2),但它引用的 package 是更低版本。 如果我尝试从 nuget package 管理器更新,我会遇到错误,因为另一个项目正在寻找此 dll 的较低版本。

> Severity  Code    Description Project File    Line    Suppression State
> Error NU1605  Detected package downgrade:
> Microsoft.IdentityModel.Clients.ActiveDirectory from 3.14.2 to
> 2.21.301221612. Reference the package directly from the project to select a different version.   TestProj -> TestProj2 0.1.219 ->
> Microsoft.Azure.Services.AppAuthentication 1.1.0-preview ->
> Microsoft.IdentityModel.Clients.ActiveDirectory (>= 3.14.2)   TestProj
> -> TestProj2 0.1.219 -> Microsoft.IdentityModel.Clients.ActiveDirectory (>=
> 2.21.301221612)   Microsoft.Crm.ObjectModel   D:\Services\TestProj.csproj 1

在我的仓库中,shared.props 文件包含这样的内容

<PKG_ACTIVEDIR>$(CxCachePath)\Microsoft.IdentityModel.Clients.ActiveDirectory.2.29.0</PKG_ACTIVEDIR>

Packages.Props 文件包含

<PackageReference Update="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="3.19.8" />

我在 Packages 下也有 2 个文件夹,例如

> microsoft.identitymodel.clients.activedirectory
> Microsoft.IdentityModel.Clients.ActiveDirectory.2.29.0

现在我应该在哪里设置 VersionOverride 以覆盖特定项目上的这个版本以及它的语法是什么

您处于无法满足项目的所有要求的情况。

忽略 NU1605 警告(这是提升为错误的警告)通常是一种不好的做法,请参阅https://docs.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu1605 忽略此警告经常会导致运行时错误。 您的项目中基本上有针对上述 package 的更高版本编译的组件。 如果你推低版本,你可能会遇到运行时问题。

您有 2 个选项:

  • 解决问题,实际使用您的传递引用所需的更高版本(3.14.2)。 更新您对此 package 的所有引用(可传递并直接到 3.14.2

  • 通过抑制警告来忽略问题。

我认为您在这里不需要版本覆盖,问题不在于指定的引用,而在于传递的引用。

暂无
暂无

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

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