Управление зависимостями пакетов в приложениях .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".