Метапакет Microsoft.AspNetCore.App для ASP.NET Core 2.1 и последующих версийMicrosoft.AspNetCore.App metapackage for ASP.NET Core 2.1 or later

Для этой функции нужна платформа ASP.NET Core 2.1 или последующей версии для .NET Core 2.1 или последующей версии.This feature requires ASP.NET Core 2.1 or later targeting .NET Core 2.1 or later.

Метапакет Microsoft.AspNetCore.App для ASP.NET Core:The Microsoft.AspNetCore.App metapackage for ASP.NET Core:

  • Не включает сторонних зависимостей, за исключением Json.NET, Remotion.Linq и IX-Async.Does not include third-party dependencies except for Json.NET, Remotion.Linq, and IX-Async. Эти зависимости необходимы для обеспечения работы основных возможностей платформ.These 3rd-party dependencies are deemed necessary to ensure the major frameworks features function.
  • Включает все поддерживаемые командой ASP.NET Core пакеты, за исключением тех, которые содержат зависимости сторонних разработчиков (кроме указанных выше).Includes all supported packages by the ASP.NET Core team except those that contain third-party dependencies (other than those previously mentioned).
  • Включает все поддерживаемые командой Entity Framework Core пакеты, за исключением тех, которые содержат зависимости сторонних разработчиков (кроме указанных выше).Includes all supported packages by the Entity Framework Core team except those that contain third-party dependencies (other than those previously mentioned).

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

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

Метапакет Microsoft.AspNetCore.App предоставляет возможность ограничения по версиям, которые защищают приложение:Using the Microsoft.AspNetCore.App metapackage provides version restrictions that protect your app:

  • Если включен пакет, который имеет транзитивную (не прямую) зависимость от пакета в Microsoft.AspNetCore.App, и эти номера версий не совпадают, NuGet выдаст ошибку.If a package is included that has a transitive (not direct) dependency on a package in Microsoft.AspNetCore.App, and those version numbers differ, NuGet will generate an error.
  • Другие пакеты, добавленные в ваше приложение не могут изменять версию пакетов, включенных в Microsoft.AspNetCore.App.Other packages added to your app cannot change the version of packages included in Microsoft.AspNetCore.App.
  • Согласованность версий гарантирует надежности работы.Version consistency ensures a reliable experience. Метапакет Microsoft.AspNetCore.App был разработан, чтобы предотвратить использование непроверенных сочетаний версий связанных компонентов в одном приложении.Microsoft.AspNetCore.App was designed to prevent untested version combinations of related bits being used together in the same app.

Приложения, использующие метапакет Microsoft.AspNetCore.App, автоматически получают все преимущества общей платформы ASP.NET Core.Applications that use the Microsoft.AspNetCore.App metapackage automatically take advantage of the ASP.NET Core shared framework. При использовании метапакета Microsoft.AspNetCore.App с приложением не развертываются никакие ресурсы из указанных по ссылке пакетов NuGet ASP.NET Core —: общая платформа .ASP.NET Core уже содержит эти ресурсы.When you use the Microsoft.AspNetCore.App metapackage, no assets from the referenced ASP.NET Core NuGet packages are deployed with the application—the ASP.NET Core shared framework contains these assets. Для сокращения времени запуска приложения ресурсы в общей платформе подвергаются предварительной компиляции.The assets in the shared framework are precompiled to improve application startup time. Дополнительную информацию см. в этой публикации об общей платформе.For more information, see The shared framework.

Следующий файл проекта ссылается на метапакет Microsoft.AspNetCore.App для ASP.NET Core и представляет стандартный шаблон ASP.NET Core 2.1:The following project file references the Microsoft.AspNetCore.App metapackage for ASP.NET Core and represents a typical ASP.NET Core 2.1 template:

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

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

</Project>

Предыдущая разметка представляет типичный шаблон ASP.NET Core 2.1 и более поздних версий.The preceding markup represents a typical ASP.NET Core 2.1 and later template. Он не задает номер версии в ссылке на пакет Microsoft.AspNetCore.App.It doesn't specify a version number for the Microsoft.AspNetCore.App package reference. Если версия не указана, она задается неявно пакетом SDK, то есть пакетом Microsoft.NET.Sdk.Web.When the version is not specified, an implicit version is specified by the SDK, that is, 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 on 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 will run 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.App в ссылке на него не гарантирует, что будет выбрана эта версия общей платформы.Specifying a version number on the Microsoft.AspNetCore.App reference does not guarantee that version of the shared framework will be 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.

Для <Project Sdk нужно установить значение Microsoft.NET.Sdk.Web, чтобы использовать неявную версию Microsoft.AspNetCore.App.<Project Sdk must be set to Microsoft.NET.Sdk.Web to use the implicit version Microsoft.AspNetCore.App. При использовании <Project Sdk="Microsoft.NET.Sdk"> (без .Web в конце) происходит следующее:When <Project Sdk="Microsoft.NET.Sdk"> (without the trailing .Web) is used:

  • Создается такое предупреждение:The following warning is generated:

    Предупреждение NU1604. Зависимость проекта Microsoft.AspNetCore.App не содержит включенную нижнюю границу. Включите нижнюю границу в версию зависимости, чтобы гарантировать согласованные результаты восстановления.Warning NU1604: Project dependency Microsoft.AspNetCore.App 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.This is a known issue with the .NET Core 2.1 SDK.

Обновление ASP.NET CoreUpdate ASP.NET Core

Метапакет Microsoft.AspNetCore.App не является традиционным пакетом, который обновляется через NuGet.The Microsoft.AspNetCore.App metapackage isn't a traditional package that's updated from NuGet. Аналогично Microsoft.NETCore.App, метапакет Microsoft.AspNetCore.App представляет собой общую среду выполнения, которая имеет особую семантику номеров версий, обрабатываемую за пределами NuGet.Similar to Microsoft.NETCore.App, Microsoft.AspNetCore.App represents a shared runtime, which has special versioning semantics handled outside of NuGet. Дополнительную информацию см. в статье Пакеты, метапакеты и платформы.For more information, see Packages, metapackages and frameworks.

Чтобы обновить ASP.NET Core, выполните следующие действия:To update ASP.NET Core:

  • На компьютерах разработки и серверах сборки выполните следующее: Скачайте и установите пакет SDK для .NET Core.On development machines and build servers: Download and install the .NET Core SDK.
  • На серверах развертывания выполните следующее: Скачайте и установите среду выполнения .NET Core.On deployment servers: Download and install the .NET Core runtime.

Приложения будут обновлены до последней установленной версии при перезапуске приложения.Applications will roll forward to the latest installed version on application restart. Номер версии Microsoft.AspNetCore.App в файле проекта обновлять не нужно.It's not necessary to update the Microsoft.AspNetCore.App version number in the project file. Дополнительные сведения см. в разделе Накат платформозависимых приложений.For more information, see Framework-dependent apps roll forward.

Если вы уже использовали Microsoft.AspNetCore.All в своем приложении, см. раздел Переход от Microsoft.AspNetCore.All к Microsoft.AspNetCore.App.If your application previously used Microsoft.AspNetCore.All, see Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App.