ASP.NET Core 2.2 -> 3.0 оновлення. env.IsDevelopment () не знайдено


96

Я модернізував існуючий проект 2.2 до 3.0. Я скопіював новий код для програми / запуску з нового проекту 3.0 до мого існуючого проекту 2.2. Це спрацювало, але IsDevelopment()нижче:

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

Результати цієї помилки:

'IWebHostEnvironment' не містить визначення для 'IsDevelopment', а найкращий метод розширення 'HostingEnvironmentExtensions.IsDevelopment (IHostingEnvironment)' вимагає приймача типу 'IHostingEnvironment'

Той самий рядок не спричинив новостворений проект 3.0. Що потрібно змінити / додати до проекту, оновленого з версії 2.2?

Відповіді:


159

Нові IHostEnvironment, IsDevelopment, і IsProductionт.д. методи розширення знаходяться в Microsoft.Extensions.Hostingпросторі імен , які , можливо , буде потрібно додати до вашого додатком.

Довідково:

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, просто додайте оператор using, як зазначено у дописі @ Greg.
Лука

тож нам потрібні як Microsoft.Extensions.Hosting, так і використання Microsoft.AspNetCore.Hosting; водночас ... Цікаво, як це працює? Назва класу з одного пакета, але його метод з іншого?
Macindows

Насправді у asp.net core 3.0 такої проблеми зараз немає, це виправлено.
Рена

67

Як каже Рена IsDevelopment, перенесено на IHostEnvironmentІнтерфейс у просторі імен Microsoft.Extensions.Hosting

Мені просто довелося додати

using Microsoft.Extensions.Hosting;

і тоді я міг використовувати IsDevelopment()як раніше.


Дякую мільйону, ця відповідь допомогла мені вирішити виняток. Переміщував ядро ​​asp.net 23.0 до ядра 3.1. просто додайте цю бібліотеку і все працює як різко. Буйний!
PatsonLeaner
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.