5 марта 2018
ASP.NET Core
Начиная с ASP.NET Core 2.1 доступен новый мета-пакет NuGet под названием Microsoft.AspNetCore.App. Это замена существующему и использовавшемуся в предыдущих версиях мета-пакету Microsoft.AspNetCore.All. Основной недостаток последнего – большое количество зависимостей, которые он добавлял в проект. Например, одновременно устанавливались Microsoft.Data.Sqlite и Microsoft.EntityFrameworkCore. |
Мета-пакет Nuget – это пакет, который не содержит сборок, но содержит список зависимостей. Используется для легкого добавления заданного набора библиотек в проект, т.к. достаточно установить только мета-пакет и все его зависимости будет автоматически загружены и подключены.
Задача нового мета-пакета Microsoft.AspNetCore.App – уменьшить число библиотек, которые он добавляет. Поэтому из списка зависимостей были удалены следующие пакеты:
- Microsoft.Data.Sqlite
- Microsoft.Data.Sqlite.Core
- Microsoft.EntityFrameworkCore.Sqlite
- Microsoft.EntityFrameworkCore.Sqlite.Core
- Microsoft.Extensions.Caching.Redis
- Microsoft.AspNetCore.DataProtection.AzureStorage
- Microsoft.Extensions.Configuration.AzureKeyVault
- Microsoft.AspNetCore.DataProtection.AzureKeyVault
- Microsoft.AspNetCore.Identity.Service.AzureKeyVault
- Microsoft.AspNetCore.AzureKeyVault.HostingStartup
- Microsoft.AspNetCore.ApplicationInsights.HostingStartup
Соответственно, все зависимости уже этих пакетов так же не будут установлены.
Как можно заметить, разработчики ASP.NET Core решили избавиться от библиотек, которые не были разработаны ими и не представляют ключевую функциональность.
Microsoft.AspNetCore.App по умолчанию используется в новых проектах ASP.NET Core начиная с версии 2.1. Поддержка старого варианта Microsoft.AspNetCore.All будет продолжаться до конца жизненного цикла версий 2.x. Но при этом рекомендуется обновить существующие проекты и использовать Microsoft.AspNetCore.App. В случае необходимости можно самостоятельно добавить необходимые пакеты из списка выше.