Métapackage Microsoft.AspNetCore.All pour ASP.NET Core 2.0

Notes

Le métapaquet Microsoft.AspNetCore.All n’est pas utilisé dans ASP.NET Core 3.0 et les versions plus récentes. Pour plus d’informations, consultez ce problème GitHub.

Notes

Nous recommandons que les applications qui ciblent ASP.NET Core 2.1 et ultérieur utilisent le métapackage Microsoft.AspNetCore.App au lieu de ce package. Consultez Migration de Microsoft.AspNetCore.All vers Microsoft.AspNetCore.App dans cet article.

Cette fonctionnalité nécessite ASP.NET Core 2.x ciblant .NET Core 2.x.

Microsoft.AspNetCore.All est un métapaquet qui fait référence à un framework partagé. Un framework partagé est un ensemble d’assemblys (fichiers.dll) qui ne sont pas dans les dossiers de l’application. Le framework partagé doit être installé sur l’ordinateur pour exécuter l’application. Pour plus d’informations, consultez Le framework partagé.

Le framework partagé auquel Microsoft.AspNetCore.All fait référence inclut :

  • Tous les packages pris en charge par l’équipe ASP.NET Core.
  • Tous les packages pris en charge par Entity Framework Core.
  • Les dépendances internes et tierces utilisées par ASP.NET Core et Entity Framework Core.

Toutes les fonctionnalités d’ASP.NET Core 2.x et d’Entity Framework Core 2.x sont incluses dans le package Microsoft.AspNetCore.All. Les modèles de projet par défaut ciblant ASP.NET Core 2.0 utilisent ce package.

Le numéro de version du métapaquet Microsoft.AspNetCore.All représente la version minimale d’ASP.NET Core et la version d’Entity Framework Core.

Le fichier .csproj suivant fait référence au métapaquet Microsoft.AspNetCore.All pour 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>

Gestion des versions implicites

Dans ASP.NET Core 2.1 ou ultérieur, vous pouvez spécifier la référence de package Microsoft.AspNetCore.All sans version. Lorsque la version n’est pas spécifiée, une version implicite est spécifiée par le SDK (Microsoft.NET.Sdk.Web). Nous vous recommandons de garder la version implicite spécifiée par le kit SDK et de ne pas définir de façon explicite le numéro de version sur la référence de package. Si vous avez des questions au sujet de cette approche, envoyez vos commentaires GitHub dans la Discussion concernant la version implicite de Microsoft.AspNetCore.App.

La version implicite est définie sur major.minor.0 pour les applications portables. Le mécanisme de restauration par progression des frameworks partagés exécute l’application sur la dernière version compatible parmi les frameworks partagés installés. Pour garantir l’utilisation de la même version en développement, test et production, vérifiez que la même version du framework partagé est installée dans tous les environnements. Pour les applications autonomes, le numéro de version implicite est défini sur le major.minor.patch du framework partagé inclus dans le SDK installé.

La spécification d’un numéro de version sur la référence de package Microsoft.AspNetCore.All ne garantit pas que la version du framework partagé sera choisie. Par exemple, supposons que la version « 2.1.1 » est spécifiée, mais que la version « 2.1.3 » est installée. Dans ce cas, l’application utilise « 2.1.3 ». Même si ce n’est pas recommandé, vous pouvez désactiver la restauration par progression (correctif et/ou mineur). Pour plus d’informations sur la restauration par progression de l’hôte dotnet et sur la configuration de son comportement, consultez dotnet host roll forward.

Le SDK du projet doit être défini sur Microsoft.NET.Sdk.Web dans le fichier projet pour utiliser la version implicite de Microsoft.AspNetCore.All. Lorsque le SDK Microsoft.NET.Sdk est spécifié (<Project Sdk="Microsoft.NET.Sdk"> en haut du fichier projet), l’avertissement suivant est généré :

Avertissement NU1604 : La dépendance du projet Microsoft.AspNetCore.All ne contient pas de limite inférieure inclusive. Incluez une limite inférieure dans la version de dépendance pour assurer des résultats de restauration cohérents.

C’est un problème connu avec le kit SDK .NET Core 2.1 ; il sera corrigé dans le kit SDK .NET Core 2.2.

Migration de Microsoft.AspNetCore.All vers Microsoft.AspNetCore.App

Les packages suivants sont inclus dans Microsoft.AspNetCore.All mais pas le package Microsoft.AspNetCore.App.

  • 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

Pour passer de Microsoft.AspNetCore.All à Microsoft.AspNetCore.App, si votre application utilise les API des packages ci-dessus, ou les packages apportés par ces packages, ajoutez des références à ces packages dans votre projet.

Toutes les dépendances des packages précédents qui ne sont pas des dépendances de Microsoft.AspNetCore.App ne sont pas incluses de manière implicite. Par exemple :

  • StackExchange.Redis comme dépendance de Microsoft.Extensions.Caching.Redis
  • Microsoft.ApplicationInsights comme dépendance de Microsoft.AspNetCore.ApplicationInsights.HostingStartup

Mettre à jour ASP.NET Core 2.1

Nous vous recommandons de migrer vers le métapackage Microsoft.AspNetCore.App pour 2.1 et versions ultérieures. Pour continuer à utiliser le métapackage Microsoft.AspNetCore.All et vérifier que la dernière version corrective est déployée :

  • Sur les machines de développement et les serveurs de builds, installez le kit SDK .NET Core le plus récent.
  • Sur les serveurs de déploiement, installez le Runtime .NET Core le plus récent. Votre application est restaurée par progression jusqu’à la version installée la plus récente au moment de son redémarrage.