NU1109: パッケージのダウングレードが検出されました:PackageB が 2.0.0 から一元的に定義された 1.0.0 に変更されました。 中央管理パッケージのバージョンを上位のバージョンに更新します。
'Project' -> 'PackageA' 1.0.0 -> 'PackageB' (>= 2.0.0)
'Project' -> 'PackageB' (>= 1.0.0)
問題点
NuGet Central Package Management を使用するようにプロジェクトが構成され、推移的なパッケージの依存関係が依存関係パッケージで指定されているバージョンよりも低いバージョンに固定されます。 パッケージを解決する場合、NuGet は 直接依存関係優先 ルールを尊重し、ピン留めされたパッケージバージョンは依存関係パッケージで指定されたバージョンをオーバーライドするため、パッケージの下位バージョンが解決され、実行時に問題が発生する可能性があります。
<PropertyGroup>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="PackageA" Version="1.0.0" />
<PackageVersion Include="PackageB" Version="1.0.0" />
</ItemGroup>
解決策
-
PackageBのPackageVersionを、パッケージの上位バージョンに更新します。
<ItemGroup>
<PackageVersion Include="PackageB" Version="2.0.0" />
</ItemGroup>
- 中央パッケージ管理推移的ピン留めを無効にして、依存関係パッケージで指定されたパッケージ バージョンを使用できるようにします。
<PropertyGroup>
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
</PropertyGroup>