ASP.NET Core 2.2 -> Actualización 3.0. env.IsDevelopment () no encontrado


92

Actualicé un proyecto 2.2 existente a 3.0. Copié el nuevo código para Programa / Inicio de un nuevo proyecto 3.0 a mi proyecto 2.2 existente. Funcionó, pero lo IsDevelopment()siguiente:

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

Resultados en este error:

'IWebHostEnvironment' no contiene una definición para 'IsDevelopment' y la mejor sobrecarga del método de extensión 'HostingEnvironmentExtensions.IsDevelopment (IHostingEnvironment)' requiere un receptor de tipo 'IHostingEnvironment'

La misma línea no provocó un proyecto 3.0 recién creado. ¿Qué necesito modificar / agregar al proyecto actualizado desde 2.2?

Respuestas:


155

Los nuevos IHostEnvironment, IsDevelopment, IsProductionetc. métodos de extensión están en el Microsoft.Extensions.Hostingespacio de nombres que puede ser necesario añadir a su aplicación.

Referencia:

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
No es necesario instalar el paquete Microsoft.Extensions.Hosting, solo agregue la declaración de uso como se menciona en la publicación de @ Greg.
Lucas

entonces necesitamos tanto Microsoft.Extensions.Hosting como usar Microsoft.AspNetCore.Hosting; al mismo tiempo ... Me pregunto cómo funciona eso? ¿Nombre de clase de un paquete pero su método de otro?
Macindows

En realidad, asp.net core 3.0 no tiene ese problema ahora. Se ha solucionado.
Rena

64

Como dice Rena, IsDevelopmentse ha movido a IHostEnvironmentInterfaz en el espacio de nombres Microsoft.Extensions.Hosting

Solo tuve que agregar el

using Microsoft.Extensions.Hosting;

y luego podría usar IsDevelopment()como antes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.