1. ホーム
  2. asp.net-core

[解決済み] ASP.NET Core 2.2 -> 3.0 アップグレード env.IsDevelopment() が見つかりませんでした。

2022-05-13 19:56:18

質問

既存の 2.2 プロジェクトを 3.0 にアップグレードしました。私は、新しい 3.0 プロジェクトから私の既存の 2.2 プロジェクトに Program/Startup の新しいコードをコピーしました。それは動作しましたが 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://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