Chyba NuGet NU1109

NU1109: Zjištěný downgrade balíčku: PackageB from 2.0.0 to centrally defined 1.0.0. Aktualizujte centrálně spravovanou verzi balíčku na vyšší verzi.
  'Project' -> 'PackageA' 1.0.0 -> 'PackageB' (>= 2.0.0)
  'Project' -> 'PackageB' (>= 1.0.0)

Problém

Projekt je nakonfigurovaný tak, aby používal správu balíčků NuGet Central a tranzitivní závislost balíčku je připnutá na verzi nižší, než je určena balíčkem závislostí. Při řešení balíčků nuGet respektuje pravidlo direct-dependency-wins a připnutá verze balíčku přepíše verzi určenou balíčkem závislostí, což vede k vyřešení nižší verze balíčku, což může vést k problémům za běhu.

<PropertyGroup>
  <CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
  <PackageVersion Include="PackageA" Version="1.0.0" />
  <PackageVersion Include="PackageB" Version="1.0.0" />
</ItemGroup>

Řešení

  • PackageVersion Aktualizujte verzi PackageB balíčku na vyšší verzi.
<ItemGroup>
  <PackageVersion Include="PackageB" Version="2.0.0" />
</ItemGroup>
  • Zakažte přechodné připnutí správy centrálních balíčků, aby bylo možné použít verzi balíčku určeného balíčkem závislostí.
<PropertyGroup>
  <CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
</PropertyGroup>