Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IHostingEnvironment's and IApplicationLifetime's marked obsolete and replaced #344

Tratcher opened this Issue Feb 20, 2019 · 1 comment


None yet
1 participant
Copy link

Tratcher commented Feb 20, 2019

When Microsoft.Extensions.Hosting was introduced in 2.1 some types like IHostingEnvironment and IApplicationLifetime were copied from Microsoft.AspNetCore.Hosting. Some 3.0 changes cause apps to include both the Microsoft.Extensions.Hosting and Microsoft.AspNetCore.Hosting namespaces. Any use of those duplicate types causes an "ambiguous reference" compiler error when both namespaces are referenced.

This error has been addressed in 3.0.0-preview3 by marking the following types obsolete and replacing them with new types. There have not been any behavioral changes made for the new types, only naming.

Obsolete types (warning):

New types:
Microsoft.AspNetCore.Hosting.IWebHostEnvironment : IHostEnvironment

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

For 3.0 both the old and new types will be available from HostBulder's and WebHostBuilder's dependency injection containers. The old types will be removed in 4.0.

See aspnet/AspNetCore#7749 for discussion.

@Tratcher Tratcher added this to the 3.0.0 milestone Feb 20, 2019

@aspnet aspnet locked as resolved and limited conversation to collaborators Feb 20, 2019


This comment has been minimized.

Copy link
Member Author

Tratcher commented Feb 25, 2019

Updated to include EnvironmentName -> Environments.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.