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


Управление зависимостями пакетов в приложениях .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 package add команду, как показано в следующем примере. (Если вы используете версию SDK .NET 9 или более раннюю, используйте форму dotnet add package.)

dotnet package add Microsoft.EntityFrameworkCore

Чтобы удалить зависимость, выполните dotnet package remove команду, как показано в следующем примере. (Если вы используете версию SDK .NET 9 или более раннюю, используйте форму dotnet remove package.)

dotnet package remove Microsoft.EntityFrameworkCore

Советы

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

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

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

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

См. также