ASP.NET Core 2.2 -> 3.0 yükseltme. env.IsDevelopment () bulunamadı


93

Mevcut bir 2.2 projesini 3.0'a yükselttim. Yeni bir 3.0 projesinden Program / Başlangıç ​​için yeni kodu mevcut 2.2 projeme kopyaladım. İşe yaradı, ancak IsDevelopment()aşağıdaki:

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

Bu hatanın sonuçları:

'IWebHostEnvironment', 'IsDevelopment' için bir tanım içermez ve en iyi genişletme yöntemi aşırı yükleme yöntemi 'HostingEnvironmentExtensions.IsDevelopment (IHostingEnvironment)', 'IHostingEnvironment' türünde bir alıcı gerektirir

Aynı satır yeni oluşturulan bir 3.0 projesine neden olmadı. 2.2'den yükseltilen projeyi değiştirmek / eklemek için neye ihtiyacım var?

Yanıtlar:


155

Yeni IHostEnvironment, IsDevelopment, IsProductionvb uzatma yöntemleri vardır Microsoft.Extensions.Hostinguygulamanıza eklenecek gerekebilir ad.

Referans:

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
Microsoft.Extensions.Hosting paketini kurmanıza gerek yok, yalnızca using ifadesini @ Greg'in gönderisinde belirtildiği gibi ekleyin.
Luke

bu yüzden hem Microsoft.Extensions.Hosting'e hem de Microsoft.AspNetCore.Hosting'i kullanmaya ihtiyacımız var; aynı zamanda ... Bunun nasıl çalıştığını merak mı ediyorsunuz? Bir paketten sınıf adı, diğerinden yöntemi?
Macindows

Aslında, asp.net core 3.0'da şu anda böyle bir sorun yok, düzeltildi.
Rena

65

Rena'nın dediği gibi , Microsoft.Extensions içinde Interface'e IsDevelopmenttaşındı.IHostEnvironment

Eklemek zorunda kaldım

using Microsoft.Extensions.Hosting;

ve sonra IsDevelopment()eskisi gibi kullanabilirim .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.