161

I upgraded an existing 2.2 project to 3.0. I copied the new code for Program/Startup from a new 3.0 project to my existing 2.2 project. It worked, but the IsDevelopment() below:

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

Results in this error:

'IWebHostEnvironment' does not contain a definition for 'IsDevelopment' and the best extension method overload 'HostingEnvironmentExtensions.IsDevelopment(IHostingEnvironment)' requires a receiver of type 'IHostingEnvironment'

The same line did not caused a newly created 3.0 project. What do I need to modify/add to the project upgraded from 2.2?

1
  • What about blessed vegetables? Commented Apr 27, 2023 at 21:45

3 Answers 3

261

The new IHostEnvironment, IsDevelopment, IsProduction etc. extension methods are in the Microsoft.Extensions.Hosting namespace which may need to be added to your app.

Reference:

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

Sign up to request clarification or add additional context in comments.

3 Comments

No need to install the Microsoft.Extensions.Hosting package, just add the using statement as mentioned in @Greg's post.
so then we need both Microsoft.Extensions.Hosting and using Microsoft.AspNetCore.Hosting; at the same time... Wonder how that works? Class name from one package but its method from another?
Actually,the asp.net core 3.0 do not have such issue now.It has been fixed.
151

As Rena says IsDevelopment has been moved to IHostEnvironment Interface in the Microsoft.Extensions.Hosting Namespace

I just had to add the

using Microsoft.Extensions.Hosting; 

and then I could use IsDevelopment() as before.

2 Comments

Thanks a million, this answer helped me to solve the exception. Was migrating asp.net core 23.0 to core 3.1. just add this library and all worked like sharp. Billiant!
Fast forward 5 years and this is still helpful with .Net 8.
2

int the extension:

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.