【问题标题】:Why does Scaffolding Identity for .NET Core 3.1 and .NET 5 in Visual Studio 2019 16.9.5 fail?为什么 Visual Studio 2019 16.9.5 中 .NET Core 3.1 和 .NET 5 的脚手架标识会失败?
【发布时间】:2021-08-03 07:55:01
【问题描述】:

我正在尝试在新项目中生成身份帐户\登录和帐户\注册页面。我已经尝试过 .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 项目的这些包的默认版本。这两个项目都未能正确构建所需的文件。

【问题讨论】:

    标签: asp.net-core asp.net-identity asp.net-mvc-scaffolding


    【解决方案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”

    【讨论】:

    • 我正在测试这个答案并调查@JamieD77 的答案。我想使用 .NET 5,尽管他的回答对于 .NET Core 3.1 来说听起来很合理。我在一个新的 .NET 5 项目中测试了你的答案,看起来不错。我想知道您在这里的回答是否与导致问题的原因有关:stackoverflow.com/questions/67498016/…
    • 我得到“脚手架身份不支持用于托管和路由的 API 最少的 Web 应用程序。”又报错了……
    【解决方案2】:

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

    【讨论】:

    • 工作就像一个魅力!谢谢!
    【解决方案3】:

    我昨天遇到了这个。

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

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

    【讨论】:

    • 我从前一天遇到同样的问题,搜索互联网上的每一页,但只有你的解决方案有效!通过降级到 Microsoft.AspNetCore.ApiAuthorization.IdentityServer 和 Microsoft.AspNetCore.Identity.UI 到 3.1.13
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      对我来说,将实体框架核心更新到最新版本时解决了

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-22
          • 2020-08-27
          • 2022-09-25
          • 2021-11-17
          • 1970-01-01
          相关资源
          最近更新 更多