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


Ошибка NuGet NU1008

Следующие элементы PackageReference не могут определить значение для версии: PackageName. Проекты, использующие централизованное управление пакетами, должны определять значение версии для элемента PackageVersion.

Проблема

Проект настраивается для использования управления пакетами NuGet Central и <PackageReference /> определяется элемент, указывающий значение для атрибута Version :

<ItemGroup>
  <PackageReference Include="PackageName" Version="5.1.0" />
</ItemGroup>

Кроме того, <PackageReference /> элемент определяется дочерним элементом <Version /> , который имеет указанное значение:

<ItemGroup>
  <PackageReference Include="PackageName">
    <Version>5.1.0</Version>
  </PackageReference>
</ItemGroup>

Проекты, настроенные для использования централизованного управления пакетами , не должны определять версию элементов <PackageReference /> . Версия должна быть определена в соответствующем <PackageVersion /> элементе с тем же идентификатором в файле Directory.Packages.props .

Решение

  • Удалите атрибут или дочерний Version<Version /><PackageReference /> элемент из элемента:

    <ItemGroup>
      <PackageReference Include="PackageName" />
    </ItemGroup>
    
  • Определите элемент, указывающий <PackageVersion /> версию в файле Directory.Packages.props с тем же идентификатором, что <PackageReference /> и элемент:

    <ItemGroup>
      <PackageVersion Include="PackageName" Version="5.0.1" />
    </ItemGroup>
    

Кроме того, централизованное управление пакетами позволяет переопределить централизованно определенные версии пакетов. Дополнительные сведения см. в разделе "Переопределение версий пакетов ".

Замечание

Обратите внимание, что метаданные, такие как IncludeAssets, PrivateAssets и т. д., должны оставаться в элементе PackageReference.