ASP.NET Core 2.2-> 3.0升级 找不到env.IsDevelopment()

Dam*_*les 20 asp.net-core asp.net-core-3.0

我将现有的2.2项目升级到3.0。我将新的Program / Startup代码从新的3.0项目复制到了现有的2.2项目。它起作用了,但是IsDevelopment()下面

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
   if (env.IsDevelopment())
   {
       app.UseDeveloperExceptionPage();
   }
Run Code Online (Sandbox Code Playgroud)

导致这样的错误:

“ IWebHostEnvironment”不包含“ IsDevelopment”的定义,最佳扩展方法重载“ HostingEnvironmentExtensions.IsDevelopment(IHostingEnvironment)”需要类型为“ IHostingEnvironment”的接收器

同一行没有引起新创建的3.0项目。我需要什么修改/添加到从2.2升级的项目?

Ren*_*ena 37

IHostEnvironmentIsDevelopmentIsProduction等扩展方法是在Microsoft.Extensions.Hosting其中可能需要添加到您的应用程序的命名空间。

参考:

https://docs.microsoft.com/zh-cn/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio#migrate-startupconfigure

https://github.com/aspnet/AspNetCore/issues/7749

  • 无需安装Microsoft.Extensions.Hosting软件包,只需添加@Greg帖子中提到的using语句。 (3认同)

小智 5

正如Rena所说,IsDevelopment已移至Microsoft.Extensions.Hosting命名空间中的IHostEnvironment接口。

我只需要添加

使用Microsoft.Extensions.Hosting;

然后我可以像以前一样使用IsDevelopment。