ASP.NET Core 2.2 -> 3.0 peningkatan. env.IsDevelopment () tidak ditemukan

95

Saya meningkatkan proyek 2.2 yang ada menjadi 3.0. Saya menyalin kode baru untuk Program / Startup dari proyek 3.0 baru ke proyek 2.2 saya yang sudah ada. Itu berhasil, tetapi di IsDevelopment()bawah ini:

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

Menghasilkan kesalahan ini:

'IWebHostEnvironment' tidak berisi definisi untuk 'IsDevelopment' dan metode ekstensi terbaik membebani 'HostingEnvironmentExtensions.IsDevelopment (IHostingEnvironment)' memerlukan penerima jenis 'IHostingEnvironment'

Baris yang sama tidak menyebabkan proyek 3.0 yang baru dibuat. Apa yang saya perlukan untuk mengubah / menambah proyek yang ditingkatkan dari 2.2?

Sayuran Sial
sumber

Jawaban:

158

Baru IHostEnvironment, IsDevelopment, IsProductiondll metode penyuluhan berada di Microsoft.Extensions.Hostingnamespace yang mungkin perlu ditambahkan ke aplikasi Anda.

Referensi:

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

Rena
sumber
21
Tidak perlu menginstal paket Microsoft.Extensions.Hosting, cukup tambahkan pernyataan menggunakan seperti yang disebutkan dalam posting @ Greg.
Lukas
jadi kita membutuhkan Microsoft.Extensions.Hosting dan menggunakan Microsoft.AspNetCore.Hosting; pada saat yang sama ... Ingin tahu bagaimana cara kerjanya? Nama kelas dari satu paket tetapi metodenya dari yang lain?
Macindows
Sebenarnya, asp.net core 3.0 tidak memiliki masalah seperti itu sekarang, sudah diperbaiki.
Rena
67

Seperti yang dikatakan Rena IsDevelopmenttelah dipindahkan ke IHostEnvironmentInterface di Microsoft.Extensions.Hosting Namespace

Saya baru saja menambahkan

using Microsoft.Extensions.Hosting;

dan kemudian saya bisa menggunakan IsDevelopment()seperti sebelumnya.

Greg
sumber
Terima kasih banyak, jawaban ini membantu saya menyelesaikan pengecualian. Memigrasi inti asp.net 23.0 ke inti 3.1. cukup tambahkan perpustakaan ini dan semuanya bekerja dengan tajam. Billiant!
PatsonLeaner