找不到类型或名称空间名称“ IWebHostEnvironment”(您是否缺少using指令或程序集引用?)

nhu*_*uvy 7 asp.net-core asp.net-core-identity blazor asp.net-core-3.0 .net-core-3.0

我正在使用.NET Core 3.0.100; Microsoft Visual Studio Community 2019预览版本16.4.0预览版1.0; Blazor服务器(官方发行版)。

我正在尝试将身份验证和授权添加到我的Blazor服务器Web应用程序。我在这里阅读指南https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-3.0&tabs=visual-studio#scaffold-identity-into-an -空项目

(我也读过这个https://github.com/aspnet/Identity/issues/1825

然后,我右键单击Project,选择Add\New Scaffolded Item...

我读了文件ScaffoldingReadme.txt,然后按照指南进行操作。

我按F5进行调试,发现错误

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
Run Code Online (Sandbox Code Playgroud)

屏幕截图[![在此处输入图片描述] [4]] [4]

由于文件\obj\Debug\netcoreapp3.0\Razor\Pages\Shared\_Layout.cshtml.g.cs位于Razor类库中,Microsoft.AspNetCore.Identity.UI (3.0.0)因此我无法对其进行编辑。

如何解决?

nhu*_*uvy 24

这是一个问题

代码生成为

Microsoft.AspNetCore.Hosting
@using Microsoft.AspNetCore.Mvc.ViewEngines
@inject IWebHostEnvironment Environment
@inject ICompositeViewEngine Engine
Run Code Online (Sandbox Code Playgroud)

它不见了 @using

它应该是

@using Microsoft.AspNetCore.Hosting
Run Code Online (Sandbox Code Playgroud)

我在https://github.com/aspnet/Scaffolding/issues/1094报告了问题


小智 11

通过添加我们的 csproj 文件(3.1 核心应用程序)解决了问题:

<ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)