ASP.NET Core 2.2-> 3.0 업그레이드. env.IsDevelopment ()를 찾을 수 없습니다.


92

기존 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에서 업그레이드 한 프로젝트를 수정 / 추가하려면 무엇이 필요합니까?

답변:


155

새로운 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 패키지를 설치할 필요없이 @Greg의 게시물에 언급 된 using 문을 추가하기 만하면됩니다.
Luke

따라서 Microsoft.Extensions.Hosting과 Microsoft.AspNetCore.Hosting 사용이 모두 필요합니다. 동시에 ... 어떻게 작동하는지 궁금하십니까? 한 패키지의 클래스 이름이지만 다른 패키지의 메서드?
Macindows

사실, asp.net core 3.0은 현재 이러한 문제가 없습니다.
Rena

64

Rena가 말했듯 IsDevelopmentIHostEnvironmentMicrosoft.Extensions.Hosting 네임 스페이스의 Interface 로 이동되었습니다.

나는 단지 추가해야했다

using Microsoft.Extensions.Hosting;

그리고 IsDevelopment()전처럼 사용할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.