[英]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.