Метапакет Microsoft.AspNetCore.All для ASP.NET Core 2.0Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0

Метапакет Microsoft.AspNetCore.All не входит в состав ASP.NET Core 3.0 и более поздних версий.The Microsoft.AspNetCore.All metapackage isn't included in ASP.NET Core 3.0 and later. Дополнительные сведения см. в этой статье об ошибке на GitHub.For more information, see this GitHub issue.

Примечание

Для приложений, предназначенных для ASP.NET Core 2.1 и более поздних версий, вместо этого пакета рекомендуется использовать метапакет Microsoft.AspNetCore.App.We recommend applications targeting ASP.NET Core 2.1 and later use the Microsoft.AspNetCore.App metapackage rather than this package. См. раздел Переход от Microsoft.AspNetCore.All к Microsoft.AspNetCore.App в этой статье.See Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App in this article.

Для этой функции нужен ASP.NET Core 2.x, нацеленный на .NET Core 2.x.This feature requires ASP.NET Core 2.x targeting .NET Core 2.x.

Microsoft.AspNetCore.All является метапакетом, который ссылается на общую платформу.Microsoft.AspNetCore.All is a metapackage that refers to a shared framework. Общая платформа — это набор сборок (DLL-файлов), которые не находятся в папках приложения.A shared framework is a set of assemblies (.dll files) that are not in the app's folders. Чтобы запустить приложение, необходимо установить на компьютере общую платформу.The shared framework must be installed on the machine to run the app. Дополнительную информацию см. в этой публикации об общей платформе.For more information, see The shared framework.

Общая платформа, на которую ссылается Microsoft.AspNetCore.All, включает в себя следующее:The shared framework that Microsoft.AspNetCore.All refers to includes:

  • все пакеты, поддерживаемые командой ASP.NET Core;All supported packages by the ASP.NET Core team.
  • все пакеты, поддерживаемые Entity Framework Core;All supported packages by the Entity Framework Core.
  • внутренние и сторонние зависимости, используемые ASP.NET Core и Entity Framework Core.Internal and 3rd-party dependencies used by ASP.NET Core and Entity Framework Core.

В пакет Microsoft.AspNetCore.All входят все компоненты ASP.NET Core 2.x и Entity Framework Core 2.x.All the features of ASP.NET Core 2.x and Entity Framework Core 2.x are included in the Microsoft.AspNetCore.All package. Этот пакет по умолчанию используется для шаблонов проектов, предназначенных для ASP.NET Core 2.0.The default project templates targeting ASP.NET Core 2.0 use this package.

Номер версии метапакета Microsoft.AspNetCore.All соответствует минимальной версии ASP.NET Core и версии Entity Framework Core.The version number of the Microsoft.AspNetCore.All metapackage represents the minimum ASP.NET Core version and Entity Framework Core version.

Следующий файл CSPROJ ссылается на метапакет Microsoft.AspNetCore.All для ASP.NET Core:The following .csproj file references the Microsoft.AspNetCore.All metapackage for ASP.NET Core:

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

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.9" />
  </ItemGroup>

</Project>

Неявное указание версийImplicit versioning

В ASP.NET Core 2.1 или более поздних версиях можно указывать ссылку на пакет Microsoft.AspNetCore.All без версии.In ASP.NET Core 2.1 or later, you can specify the Microsoft.AspNetCore.All package reference without a version. Если версия не указана, она задается неявно пакетом SDK (Microsoft.NET.Sdk.Web).When the version isn't specified, an implicit version is specified by the SDK (Microsoft.NET.Sdk.Web). Рекомендуется использовать неявное указание версии через пакет SDK, а не задавать номер версии явно в ссылке на пакет.We recommend relying on the implicit version specified by the SDK and not explicitly setting the version number on the package reference. Если у вас возникли вопросы по этому подходу, оставьте комментарий на GitHub в обсуждении неявного указания версий Microsoft.AspNetCore.App.If you have questions about this approach, leave a GitHub comment at the Discussion for the Microsoft.AspNetCore.App implicit version.

Для переносимых приложений при неявном указании версии устанавливается значение major.minor.0.The implicit version is set to major.minor.0 for portable apps. Механизм выбора последней общей платформы запускает приложение на последней совместимой версии среди установленных общих платформ.The shared framework roll-forward mechanism runs the app on the latest compatible version among the installed shared frameworks. Чтобы гарантировать, что используется одна и та же версия при разработке, тестировании и эксплуатации, убедитесь, что установлена одинаковая версия общей платформы во всех средах.To guarantee the same version is used in development, test, and production, ensure the same version of the shared framework is installed in all environments. Для автономных приложений неявный номер версии общей платформы, включенной в установленный пакет SDK, устанавливается в значение major.minor.patch.For self-contained apps, the implicit version number is set to the major.minor.patch of the shared framework bundled in the installed SDK.

Указание номера версии в ссылке на пакет Microsoft.AspNetCore.All не гарантирует, что выбирается эта версия общей платформы.Specifying a version number on the Microsoft.AspNetCore.All package reference does not guarantee that version of the shared framework is chosen. Например, пусть указана версия "2.1.1", но установлена версия "2.1.3".For example, suppose version "2.1.1" is specified, but "2.1.3" is installed. В этом случае приложение будет использовать версию "2.1.3".In that case, the app will use "2.1.3". Хотя это не рекомендуется, можно отключить функцию выбора последней версии (для исправлений и (или) вспомогательных версий).Although not recommended, you can disable roll forward (patch and/or minor). Дополнительную информацию см. в статье о выборе последней версии на узле .NET.For more information regarding dotnet host roll-forward and how to configure its behavior, see dotnet host roll forward.

Чтобы использовать неявную версию Microsoft.AspNetCore.All, для пакета SDK проекта следует указать Microsoft.NET.Sdk.Web в файле проекта.The project's SDK must be set to Microsoft.NET.Sdk.Web in the project file to use the implicit version of Microsoft.AspNetCore.All. Если указан пакет SDK Microsoft.NET.Sdk (<Project Sdk="Microsoft.NET.Sdk"> в верхней части файла проекта), выводится следующее предупреждение:When the Microsoft.NET.Sdk SDK is specified (<Project Sdk="Microsoft.NET.Sdk"> at the top of the project file), the following warning is generated:

Предупреждение NU1604. Зависимость проекта Microsoft.AspNetCore.All не содержит включенную нижнюю границу. Включите нижнюю границу в версию зависимости, чтобы гарантировать согласованные результаты восстановления.Warning NU1604: Project dependency Microsoft.AspNetCore.All does not contain an inclusive lower bound. Include a lower bound in the dependency version to ensure consistent restore results.

Это известная проблема с пакетом SDK для .NET Core 2.1. Она будет устранена в пакете SDK для .NET Core 2.2.This is a known issue with the .NET Core 2.1 SDK and will be fixed in the .NET Core 2.2 SDK.

Переход от Microsoft.AspNetCore.All к Microsoft.AspNetCore.AppMigrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App

Следующие пакеты включены в пакет Microsoft.AspNetCore.All, но не выключены в пакет Microsoft.AspNetCore.App.The following packages are included in Microsoft.AspNetCore.All but not the Microsoft.AspNetCore.App package.

  • Microsoft.AspNetCore.ApplicationInsights.HostingStartup
  • Microsoft.AspNetCore.AzureAppServices.HostingStartup
  • Microsoft.AspNetCore.AzureAppServicesIntegration
  • Microsoft.AspNetCore.DataProtection.AzureKeyVault
  • Microsoft.AspNetCore.DataProtection.AzureStorage
  • Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv
  • Microsoft.AspNetCore.SignalR.Redis
  • Microsoft.Data.Sqlite
  • Microsoft.Data.Sqlite.Core
  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Sqlite.Core
  • Microsoft.Extensions.Caching.Redis
  • Microsoft.Extensions.Configuration.AzureKeyVault
  • Microsoft.Extensions.Logging.AzureAppServices
  • Microsoft.VisualStudio.Web.BrowserLink

При переходе от Microsoft.AspNetCore.All к Microsoft.AspNetCore.App, если приложение использует API из пакетов выше или включенных в них пакетов, необходимо добавить в проект ссылки на эти пакеты.To move from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App, if your app uses any APIs from the above packages, or packages brought in by those packages, add references to those packages in your project.

Любые зависимости пакетов выше, которые не являются зависимостями пакета Microsoft.AspNetCore.App, не добавляются автоматически.Any dependencies of the preceding packages that otherwise aren't dependencies of Microsoft.AspNetCore.App are not included implicitly. Например:For example:

  • StackExchange.Redis как зависимость Microsoft.Extensions.Caching.RedisStackExchange.Redis as a dependency of Microsoft.Extensions.Caching.Redis
  • Microsoft.ApplicationInsights как зависимость Microsoft.AspNetCore.ApplicationInsights.HostingStartupMicrosoft.ApplicationInsights as a dependency of Microsoft.AspNetCore.ApplicationInsights.HostingStartup

Обновление до версии ASP.NET Core 2.1Update ASP.NET Core 2.1

Мы рекомендуем перейти к использованию метапакета Microsoft.AspNetCore.App для 2.1 и более поздних версий.We recommend migrating to the Microsoft.AspNetCore.App metapackage for 2.1 and later. Чтобы продолжить использование метапакета Microsoft.AspNetCore.All и обеспечить развертывание версии с последними исправлениями, сделайте следующее:To keep using the Microsoft.AspNetCore.All metapackage and ensure the latest patch version is deployed:

  • На компьютерах разработки и серверах сборки выполните следующее: Установите пакет SDK для .NET Core последней версии.On development machines and build servers: Install the latest .NET Core SDK.
  • На серверах развертывания выполните следующее: Установите среду выполнения .NET Core последней версии.On deployment servers: Install the latest .NET Core runtime. Ваше приложение обновится до последней установленной версии при перезапуске.Your app will roll forward to the latest installed version on an application restart.