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

时间:2019-09-23 21:33:29

标签: 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();
   }

引起了这样的错误:

  

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

同一行未引起新创建的3.0项目。我需要修改/添加到从2.2升级的项目中吗?

3 个答案:

答案 0 :(得分:52)

新的IHostEnvironmentIsDevelopmentIsProduction等扩展方法位于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

答案 1 :(得分:6)

正如Rena所说,<mat-toolbar color="primary"> <app-page-content> <a routerLink="/home" mat-button><i class="material-icons" style="margin-bottom: 3px">home</i> Home</a> <a routerLink="/blog" mat-button><i class="material-icons" style="margin-bottom: 3px">dashboard</i> Blog</a> <a routerLink="/about" mat-button><i class="material-icons" style="margin-bottom: 3px">person</i> About</a> <a routerLink="/contact" mat-button><i class="material-icons" style="margin-bottom: 3px">mail</i> Contact</a> <span class="flex-spacer"></span> <a routerLink="signin" mat-button><span class="mi mi-person"></span></a> </app-page-content> </mat-toolbar> 已移至IsDevelopment界面中 Microsoft.Extensions.Hosting命名空间

我只需要添加

IHostEnvironment

然后我可以像以前一样使用using Microsoft.Extensions.Hosting;

答案 2 :(得分:0)

输入扩展名:

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());
    }
}
相关问题