Nâng cấp ASP.NET Core 2.2 -> 3.0. env.IsDevelopment () không tìm thấy


96

Tôi đã nâng cấp một dự án 2.2 hiện có lên 3.0. Tôi đã sao chép mã mới cho Chương trình / Khởi động từ một dự án 3.0 mới vào dự án 2.2 hiện có của mình. Nó đã hoạt động, nhưng IsDevelopment()bên dưới:

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

Kết quả là lỗi này:

'IWebHostEnosystem' không chứa định nghĩa cho 'IsDevelopment' và quá tải phương thức mở rộng tốt nhất 'HostingEnosystemExtensions.IsDevelopment (IHostingEnosystem)' yêu cầu bộ thu loại 'IHostingEnosystem'

Dòng tương tự không gây ra một dự án 3.0 mới được tạo. Tôi cần sửa đổi / bổ sung những gì đối với dự án được nâng cấp từ 2.2?

Câu trả lời:


159

Mới IHostEnvironment, IsDevelopment, IsProductionvv phương pháp mở rộng đang trong Microsoft.Extensions.Hostingnamespace mà có thể cần phải được thêm vào ứng dụng của bạn.

Tài liệu tham khảo:

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
Không cần cài đặt gói Microsoft.Extensions.Hosting, chỉ cần thêm câu lệnh using như đã đề cập trong bài đăng của @ Greg.
Luke

vì vậy chúng ta cần cả Microsoft.Extensions.Hosting và sử dụng Microsoft.AspNetCore.Hosting; đồng thời ... Tự hỏi nó hoạt động như thế nào? Tên lớp từ một gói nhưng phương thức của nó từ gói khác?
Macindows

Trên thực tế, asp.net core 3.0 hiện không có vấn đề như vậy, nó đã được khắc phục.
Rena

68

Như Rena nói IsDevelopmentđã được chuyển sang IHostEnvironmentGiao diện trong Microsoft.

Tôi chỉ cần thêm

using Microsoft.Extensions.Hosting;

và sau đó tôi có thể sử dụng IsDevelopment()như trước đây.


Cảm ơn một triệu, câu trả lời này đã giúp tôi giải quyết ngoại lệ. Đang di chuyển lõi 23.0 của asp.net sang lõi 3.1. chỉ cần thêm thư viện này và tất cả đều hoạt động như sắc nét. Bi-a!
PatsonLeaner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.