Nuget 包管理问题 - 无法更新特定项目中的包
Nuget Package Management issue - Unable to update the package in specific project
编译 Visual Studio 解决方案时出现以下错误。我的特定项目正在寻找更高版本(3.14.2),但它引用的包是较低版本。如果我尝试从 nuget 包管理器更新,我会收到一个错误,因为另一个项目正在寻找此 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" />
另外,我在
等包下有 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。
忽略此警告经常会导致运行时错误。您的项目中基本上有一些组件是针对上述包的更高版本编译的。
如果你推送一个较低的版本,你可能会遇到运行时问题。
您有 2 个选择:
解决问题,实际使用您的传递引用所需的更高版本 (3.14.2)。更新你对这个包的所有引用(传递并直接到 3.14.2
通过抑制警告忽略问题。
我认为您在这里不需要版本覆盖,问题不在于指定的引用,而在于传递的引用。
编译 Visual Studio 解决方案时出现以下错误。我的特定项目正在寻找更高版本(3.14.2),但它引用的包是较低版本。如果我尝试从 nuget 包管理器更新,我会收到一个错误,因为另一个项目正在寻找此 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" />
另外,我在
等包下有 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。 忽略此警告经常会导致运行时错误。您的项目中基本上有一些组件是针对上述包的更高版本编译的。 如果你推送一个较低的版本,你可能会遇到运行时问题。
您有 2 个选择:
解决问题,实际使用您的传递引用所需的更高版本 (3.14.2)。更新你对这个包的所有引用(传递并直接到 3.14.2
通过抑制警告忽略问题。
我认为您在这里不需要版本覆盖,问题不在于指定的引用,而在于传递的引用。