为什么 Visual Studio 2019 16.9.5 中的 .NET Core 3.1 和 .NET 5 的脚手架标识失败?

Why does Scaffolding Identity for .NET Core 3.1 and .NET 5 in Visual Studio 2019 16.9.5 fail?

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

如您所知,非常有用的错误消息。有人知道什么会导致 .NET Core 3.1 或 .NET 5 项目出现这种情况以及如何解决吗?我已经为我的 . NET 5 项目,以及新 .NET Core 3.1 项目的这些包的默认版本。这两个项目都未能正确构建所需的文件。

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

1.Close Visual Studio.

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

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

dotnet tool install -g dotnet-aspnet-codegenerator

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

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

5.Run 以下命令,其中 YourAppName.Models.ApplicationDbContext 是您的 DbContext 的名称空间:

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

如果命令完成且没有错误,应该已经解决了“运行 所选代码生成器出现错误”问题,并在 Areas/Identity/Pages.

下创建了必要的身份页面

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 文件夹对我有效。

对我来说,将 entity framework 核心更新到最新版本后就解决了

对于 dotnet 6,只需将所有身份和 ef 核心相关库升级到版本 6.x.x。还有数据库 ef 核心库。