Поделиться через


Ошибка NuGet NU1109

NU1109: обнаружена понижение уровня пакета: PackageB с 2.0.0 до централизованно определенного 1.0.0. Обновите централизованно управляемую версию пакета до более поздней.
  Project —> PackageA 1.0.0 —> PackageB (>= 2.0.0)
  Project —> PackageB (>= 1.0.0)

Проблема

Проект настроен для использования управления пакетами NuGet Central, а зависимость транзитивного пакета закреплена до версии ниже, чем указано пакетом зависимостей. При разрешении пакетов NuGet учитывает правило direct-dependency-wins , а закрепленная версия пакета переопределяет версию, указанную пакетом зависимостей, что приводит к устранению более низкой версии пакета, что может привести к проблемам во время выполнения.

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

Решение

  • PackageVersion PackageB Обновите версию пакета до более поздней версии.
<ItemGroup>
  <PackageVersion Include="PackageB" Version="2.0.0" />
</ItemGroup>
  • Отключите транзитивное закрепление центра управления пакетами, чтобы разрешить использовать версию пакета, указанную пакетом зависимостей.
<PropertyGroup>
  <CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
</PropertyGroup>