NET Core 2.2-> 3.0 update. env.IsDevelopment()未找到

我把现有的2.2项目升级到了3.0。我将 Program/Startup 的新代码从一个新的3.0项目复制到我现有的2.2项目中。它奏效了,但下面的 IsDevelopment():

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

结果是:

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

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

46805 次浏览

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

参考文献:

Https://learn.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 所说,IsDevelopment已经被移动到了 微软。扩展。主机命名空间

我只需要加上

using Microsoft.Extensions.Hosting;

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

分机号:

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;


public static class HostingEnvironmentExtensions
{
public static IConfigurationRoot GetAppConfiguration(this IWebHostEnvironment env)
{
return AppConfigurations.Get(env.ContentRootPath, env.EnvironmentName, env.IsDevelopment());
}
}