Управление зависимостями пакетов в приложениях .NET

В этой статье описывает, как добавлять и удалять зависимости пакетов путем изменения файла проекта или с помощью интерфейса командной строки.

<Элемент PackageReference>

Элемент файла проекта <PackageReference> имеет следующую структуру:

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" />

Атрибут Include указывает идентификатор пакета, добавляемого в проект. Атрибут Version указывает версию, которую необходимо получить. Версии указываются в соответствии с правилами версий NuGet.

Зависимость, доступная только в конкретном целевом объекте, добавляется с использованием условий, как показано в следующем примере:

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />

Зависимость в предыдущем примере будет допустимой только при сборке для указанного целевого объекта. Элемент $(TargetFramework) в этом условии представляет собой задаваемое в проекте свойство MSBuild. Для наиболее распространенных приложений .NET это не требуется.

Добавление и удаление зависимостей

Вы можете добавлять и удалять зависимости, изменяя файл проекта или с помощью команд .NET CLI .

Изменение файла проекта

Чтобы добавить зависимость, добавьте <PackageReference> элемент внутри <ItemGroup> элемента. Можно добавить существующий элемент <ItemGroup> или создать новый.

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    ...
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.2" />
  </ItemGroup>

</Project>

Чтобы удалить зависимость, удалите его <PackageReference> элемент из файла проекта.

Использование CLI

Чтобы добавить зависимость, выполните команду dotnet add package, как показано в следующем примере:

dotnet add package Microsoft.EntityFrameworkCore

Чтобы удалить зависимость, выполните команду dotnet remove package, как показано в следующем примере:

dotnet remove package Microsoft.EntityFrameworkCore

Советы

  • Не включайте входные данные в операцию восстановления в файле .targets или .props пакета, на который ссылается ссылка. Эти входные данные могут включать PackageReference элементы, ExcludeAssets атрибуты, веб-каналы NuGet для использования или другую конфигурацию NuGet. Файлы .targets и PROPS из пакетов не используются до завершения восстановления NuGet. Все, что необходимо для восстановления, должно находиться в файле проекта или целевом файле самого проекта, а не в зависимости пакета.

  • Если вы хотите использовать api ASP.NET в консольном приложении или библиотеке классов, добавьте элемент FrameworkReference в файл проекта:

    <FrameworkReference Include="Microsoft.AspNetCore.App" />

    Дополнительные сведения см. в разделе "Использование общей платформы ASP.NET Core".

См. также