ASP.NET Core 2.2-> 3.0アップグレード。env.IsDevelopment()が見つかりません


100

既存の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からアップグレードしたプロジェクトに何を変更/追加する必要がありますか?

回答:


163

新しい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


21
Microsoft.Extensions.Hostingパッケージをインストールする必要はありません。@ Gregの投稿に記載されているように、usingステートメントを追加するだけです。
ルーク

したがって、Microsoft.Extensions.HostingとMicrosoft.AspNetCore.Hostingの使用の両方が必要です。同時に...それがどのように機能するのだろうか?あるパッケージのクラス名ですが、別のパッケージのメソッドですか?
Macindows

実際、asp.netコア3.0にはそのような問題はありません。修正されました。
レナ

69

Renaが言うように、Microsoft.Extensions.Hosting名前空間のインターフェイスにIsDevelopment移動さIHostEnvironmentれました

追加する必要がありました

using Microsoft.Extensions.Hosting;

その後IsDevelopment()、以前と同じように使用できます。


百万のおかげで、この答えは私が例外を解決するのを助けました。asp.netコア23.0をコア3.1に移行していました。このライブラリを追加するだけで、すべてがシャープのように機能しました。ビリアント!
PatsonLeaner
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.