为什么 Visual Studio 2019 16.9.5 中 .NET Core 3.1 和 .NET 5 的 Scaffolding Identity 失败?

问题描述

我正在尝试在新项目中生成 Identity Account\Login 和 Account\Register 页面。我已经尝试过 .NET Core 3.1 和 .NET 5;在这两种情况下,即使是新项目,我也会收到以下错误消息:

enter image description here

如您所知,这是一条非常有用的错误消息。有谁知道 .NET Core 3.1 或 .NET 5 项目会导致什么问题以及如何解决?我已经为我的 .NET 5 项目安装了 VS2019 v16.9.5、Microsoft 的 IdentityServer v.5.0.6、EntityFrameworkCore v.5.0.6、Identity.UI v5.0.6 和 CodeGeneration.Design v.5.0.2,以及新 .NET Core 3.1 项目的这些包的认版本。两个项目都未能正确构建所需文件

解决方法

通过在 Visual Studio 之外使用 dotnet CLI 来执行脚手架工具,我找到了解决此错误的方法。 以下步骤使用 aspnet-codegenerator 工具将完整的身份页面区域构建到您的 .Net Core 5 应用中。

1.关闭 Visual Studio。

2. 打开命令提示符并将目录更改为项目位置。

3.通过执行以下命令确保您的机器上安装了 aspnet-codegenerator 工具:

dotnet tool install -g dotnet-aspnet-codegenerator

4.如果您的项目中尚不存在 Microsoft.VisualStudio.Web.CodeGeneration.Design 包,请将其添加到项目中。

Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design

5. 运行以下命令,其中 YourAppName.Models.ApplicationDbContext 是 DbContext 的命名空间:

dotnet aspnet-codegenerator identity -dc YourAppName.Models.ApplicationDbContext

如果命令在没有错误的情况下完成,则本应修复“运行所选代码生成器时出现错误”问题并在区域/身份/页面下创建必要的身份页面。

enter image description here

dotnet aspnet-codegenerator 还可以通过传入 -files 参数后跟要创建的文件来仅构建特定文件而不是所有身份文件,如果您不需要完整集。

dotnet aspnet-codegenerator identity -dc MyApp.Models.ApplicationDbContext –files “Account.Register;Account.Login;Account.Logout”

,

我昨天遇到了这个。

我必须先安装 Microsoft.AspNetCore.ApiAuthorization.IdentityServer 的 3.1.13 版本,然后安装 Microsoft.AspNetCore.Identity.UI,然后,脚手架在 VS2019 中工作

我之前所有的 AspCoreNet 包都设置为 3.1.15。

,

跟进 JamieD77 的回答,如果您在 .net 5 上遇到此问题,只需将 Microsoft.AspNetCore.ApiAuthorization.IdentityServerMicrosoft.AspNetCore.Identity.UI 降级到 5.0.0 版。脚手架现在可以工作了。

,

关闭项目并删除 bin 和 obj 文件夹在我的情况下有效。