ASP.NET Core 2.2 -> 3.0 Upgrade. env.IsDevelopment () nicht gefunden


93

Ich habe ein vorhandenes 2.2-Projekt auf 3.0 aktualisiert. Ich habe den neuen Code für Programm / Start von einem neuen 3.0-Projekt in mein vorhandenes 2.2-Projekt kopiert. Es hat funktioniert, aber das IsDevelopment()Folgende:

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

Ergebnisse in diesem Fehler:

'IWebHostEnvironment' enthält keine Definition für 'IsDevelopment' und die beste Erweiterungsmethodenüberladung 'HostingEnvironmentExtensions.IsDevelopment (IHostingEnvironment)' erfordert einen Empfänger vom Typ 'IHostingEnvironment'.

Dieselbe Zeile hat kein neu erstelltes 3.0-Projekt verursacht. Was muss ich ändern / zu dem von 2.2 aktualisierten Projekt hinzufügen?

Antworten:


156

Die neuen IHostEnvironment, IsDevelopment, IsProductionusw. Erweiterungsmethoden sind im Microsoft.Extensions.HostingNamensraum , die zu Ihrer Anwendung hinzugefügt werden muß.

Referenz:

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
Sie müssen das Microsoft.Extensions.Hosting-Paket nicht installieren. Fügen Sie einfach die using-Anweisung hinzu, wie in @ Gregs Beitrag erwähnt.
Luke

Dann benötigen wir sowohl Microsoft.Extensions.Hosting als auch die Verwendung von Microsoft.AspNetCore.Hosting. zur gleichen Zeit ... Frage mich, wie das funktioniert? Klassenname aus einem Paket, aber seine Methode aus einem anderen?
Macindows

Tatsächlich hat der asp.net Core 3.0 jetzt kein solches Problem. Es wurde behoben.
Rena

66

Wie Rena sagt IsDevelopment, wurde IHostEnvironmentInterface im Microsoft.Extensions.Hosting Namespace verschoben

Ich musste nur das hinzufügen

using Microsoft.Extensions.Hosting;

und dann könnte ich IsDevelopment()wie bisher verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.