我将现有的 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 升级的项目进行修改/添加什么?
新的 IHostEnvironment
、IsDevelopment
、IsProduction
等扩展方法位于 Microsoft.Extensions.Hosting
命名空间中,可能需要添加到您的应用程序中。
参考:
https://github.com/aspnet/AspNetCore/issues/7749
正如 Rena 所说,IsDevelopment
已移至 Microsoft.Extensions.Hosting 命名空间中的 IHostEnvironment
接口
我只需要添加
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());
}
}
不定期副业成功案例分享