Freigeben über


NuGet-Fehler NU1109

NU1109: Paketdowngrade erkannt: PackageB von 2.0.0 bis zentral definiert 1.0.0. Aktualisieren Sie die zentral verwaltete Paketversion auf eine höhere Version.
  'Project' -> 'PackageA' 1.0.0 -> 'PackageB' (>= 2.0.0)
  'Project' -> 'PackageB' (>= 1.0.0)

Thema

Ein Projekt ist für die Verwendung der NuGet Central Package Management konfiguriert, und eine transitive Paketabhängigkeit wird an eine Version angeheftet, die niedriger ist als durch das Abhängigkeitspaket angegeben wird. Beim Auflösen von Paketen berücksichtigt NuGet die Regel für direct-dependency-wins und die angeheftete Paketversion setzt die durch das Abhängigkeitspaket angegebene Version außer Kraft, wodurch eine niedrigere Version des Pakets behoben wird, was zu Problemen zur Laufzeit führen kann.

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

Lösung

  • Aktualisieren Sie die Version PackageVersion des PackageB Pakets auf die höhere Version des Pakets.
<ItemGroup>
  <PackageVersion Include="PackageB" Version="2.0.0" />
</ItemGroup>
  • Deaktivieren Sie die transitive Pinning für die zentrale Paketverwaltung, damit die vom Abhängigkeitspaket angegebene Paketversion verwendet werden kann.
<PropertyGroup>
  <CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
</PropertyGroup>