Le type ou le nom de l'espace de noms «IWebHostEnvironment» est introuvable (manque-t-il une directive using ou une référence d'assembly?)


11

J'utilise .NET Core 3.0.100; Microsoft Visual Studio Community 2019 Preview Version 16.4.0 Preview 1.0; Blazor-server (version officielle).

J'essaie d'ajouter l'authentification et l'autorisation à mon application Web du serveur Blazor. Je lis les lignes directrices ici https://docs.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-3.0&tabs=visual-studio#scaffold-identity-into-an -vide-projet

(J'ai également lu ce https://github.com/aspnet/Identity/issues/1825 )

Ensuite, je clique avec le bouton droit sur Projet, choisissez Add\New Scaffolded Item...

J'ai lu le fichier ScaffoldingReadme.txt, puis je suis le guide.

J'appuie sur F5 pour le débogage, j'attrape une erreur

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

Capture d'écran [! [Entrez la description de l'image ici] [4]] [4]

Parce que le fichier \obj\Debug\netcoreapp3.0\Razor\Pages\Shared\_Layout.cshtml.g.csse trouve à l'intérieur de la bibliothèque de classes Razor, Microsoft.AspNetCore.Identity.UI (3.0.0)je ne peux donc pas le modifier.

Comment le réparer?



Réponses:


36

C'est un problème,

Le code généré est

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

ça manque @using

ça devrait être

@using Microsoft.AspNetCore.Hosting

J'ai signalé un problème sur https://github.com/aspnet/Scaffolding/issues/1094

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.