The type or namespace name 'IWebHostEnvironment' could not be found (are you missing a using directive or an assembly reference?)
Asked Answered
A

2

26

I am using .NET Core 3.0.100 ; Microsoft Visual Studio Community 2019 Preview Version 16.4.0 Preview 1.0 ; Blazor-server (official release).

I am trying to add Authentication and Authorization to my Blazor-server web app. I am reading the guideline at here https://learn.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-3.0&tabs=visual-studio#scaffold-identity-into-an-empty-project

(I also read this https://github.com/aspnet/Identity/issues/1825)

Then I right-click on Project, choose Add \ New Scaffolded Item...

I read the file ScaffoldingReadme.txt, then follow the guide.

I press F5 for debugging, I catch the error.

Severity:       Error
Error Code:     CS0246
Description:    The type or namespace name 'IWebHostEnvironment' could not be found (are you missing a using directive or an assembly reference?)
Project:        foo
File:       C:\Users\donhuvy\Desktop\foo\bar\obj\Debug\netcoreapp3.0\Razor\Pages\Shared\_Layout.cshtml.g.cs
Line:       455
Suppression State:  Active

Screenshot Screenshot of vscode with the error

Because file \obj\Debug\netcoreapp3.0\Razor\Pages\Shared\_Layout.cshtml.g.cs stand inside Razor Class Library Microsoft.AspNetCore.Identity.UI (3.0.0), I cannot edit it.

How to fix it?

Agosto answered 2/10, 2019 at 14:53 Comment(2)
Have you seen https://mcmap.net/q/175050/-39-ihostingenvironment-39-is-obsoleteHeadline
It already is an issue: github.com/aspnet/AspNetCore/issues/13120Hieroglyphic
A
45

This is an issue,

The code generate is

Microsoft.AspNetCore.Hosting
@using Microsoft.AspNetCore.Mvc.ViewEngines
@inject IWebHostEnvironment Environment
@inject ICompositeViewEngine Engine

it is missing @using

it should be

@using Microsoft.AspNetCore.Hosting

I reported issue at https://github.com/aspnet/Scaffolding/issues/1094

Agosto answered 2/10, 2019 at 15:38 Comment(0)
R
11

Issue solved by adding in our csproj file (3.1 core app):

<ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
Retrospective answered 13/7, 2021 at 13:13 Comment(1)
Strange but worked!!!Arachne

© 2022 - 2024 — McMap. All rights reserved.