Mise à niveau ASP.NET Core 2.2 -> 3.0. env.IsDevelopment () introuvable


93

J'ai mis à niveau un projet 2.2 existant vers 3.0. J'ai copié le nouveau code pour le programme / démarrage d'un nouveau projet 3.0 vers mon projet 2.2 existant. Cela a fonctionné, mais leIsDevelopment() ci dessous:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
   if (env.IsDevelopment())
   {
      app.UseDeveloperExceptionPage();
   }
}

Résultats dans cette erreur:

'IWebHostEnvironment' ne contient pas de définition pour 'IsDevelopment' et la meilleure surcharge de méthode d'extension 'HostingEnvironmentExtensions.IsDevelopment (IHostingEnvironment)' nécessite un récepteur de type 'IHostingEnvironment'

La même ligne n'a pas provoqué un projet 3.0 nouvellement créé. De quoi ai-je besoin pour modifier / ajouter au projet mis à niveau depuis la version 2.2?

Réponses:


155

Les nouvelles IHostEnvironment, IsDevelopment, IsProductionetc. Les méthodes d'extension sont dans l' Microsoft.Extensions.Hostingespace de noms qui peuvent avoir besoin d' être ajouté à votre application.

Référence:

https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio#migrate-startupconfigure

https://github.com/aspnet/AspNetCore/issues/7749


21
Pas besoin d'installer le package Microsoft.Extensions.Hosting, ajoutez simplement l'instruction using comme mentionné dans le post de @ Greg.
Luc

nous avons donc besoin à la fois de Microsoft.Extensions.Hosting et de Microsoft.AspNetCore.Hosting; en même temps ... Je me demande comment ça marche? Nom de classe d'un paquet mais sa méthode d'un autre?
Macindows

En fait, asp.net core 3.0 n'a pas un tel problème maintenant, il a été corrigé.
Rena le

65

Comme Rena le dit, IsDevelopmenta été déplacé vers IHostEnvironmentInterface dans l'espace de noms Microsoft.Extensions.Hosting

Je devais juste ajouter le

using Microsoft.Extensions.Hosting;

et puis je pourrais utiliser IsDevelopment()comme avant.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.