问题描述
我正在尝试在新项目中生成 Identity Account\Login 和 Account\Register 页面。我已经尝试过 .NET Core 3.1 和 .NET 5;在这两种情况下,即使是新项目,我也会收到以下错误消息:
如您所知,这是一条非常有用的错误消息。有谁知道 .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
如果命令在没有错误的情况下完成,则本应修复“运行所选代码生成器时出现错误”问题并在区域/身份/页面下创建必要的身份页面。
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.IdentityServer
和 Microsoft.AspNetCore.Identity.UI
降级到 5.0.0 版。脚手架现在可以工作了。
关闭项目并删除 bin 和 obj 文件夹在我的情况下有效。