【问题标题】:Scaffold Identity fails in .Net5 Blazor Server.Net5 Blazor 服务器中的脚手架标识失败
【发布时间】:2021-10-18 16:08:35
【问题描述】:

我有一个现有的 .Net 5 Blazor Server 应用程序。此时没有身份验证或授权。我正在尝试通过脚手架添加 Microsoft 身份,但当我尝试将身份脚手架到我无法解决的项目中时继续收到以下错误“所选代码生成器中出现错误'包还原失败。回滚包更改[MySolujtionName] 服务器。”

我尝试过的方法:

  • 批量构建 - 清洁解决方案
  • 批量构建 - 重建解决方案
  • 工具 --> 选项 --> Nuget 包管理器 --> 清除所有 Nuget 缓存然后重复上述步骤

到目前为止没有运气,我继续遇到同样的错误。

【问题讨论】:

    标签: identity blazor-server-side .net-5 asp.net-core-scaffolding


    【解决方案1】:

    我尝试了一个新的 Blazor Server 项目,它适用于:

    1. 至少指定一个覆盖(我选择了登录注销注册
    2. 指定_Layout.cshtml的完整路径(我用过/Areas/Identity/Pages/Account/Manage/_Layout.cshtml
    3. 添加上下文
    4. 添加用户模型

    然后脚手架按预期工作。

    我得到以下结构:

    脚手架生成的User模型类将是:

    namespace Test2.Areas.Identity.Data
    {
        // Add profile data for application users by adding properties to the Test2User class
        public class Test2User : IdentityUser
        {
        }
    }
    

    更新

    我在 Visual Studio 生成器中发现了一个错误。
    从现有项目搭建身份页面的唯一可能性是通过命令行执行搭建过程。

    下面是命令行示例:

    dotnet aspnet-codegenerator identity -dc TestWasmAuthIndividual.Server.Data.ApplicationDbContext --files "Account.Register;Account.Login;Account.Logout;Account.Manage.PersonalData" --force
    

    您需要从 Server 项目执行此命令行。

    【讨论】:

    • 嗨,Nicola - 我已经完成了 1、2 和 3。您在使用什么用户模型?我选择了全部覆盖。
    • 我已将生成的用户类添加到答案中。我还没有编写任何用户类,脚手架为我创建了它。
    • 我认为问题应该是您在现有项目中已经拥有的一些旧的或预览版包。尝试创建一个新的 Blazor Server 项目并使用源文本比较器。
    • 没有旧包或预览包
    • 你确定你在 csproj 中的 TargetFramework 是正确的吗?
    【解决方案2】:

    我从上面的 Nicolas Biada 复制并粘贴了此内容,以指出这是实际分辨率的部分。

    更新

    我在 Visual Studio 生成器中发现了一个错误。 从现有项目搭建身份页面的唯一可能性是通过命令行执行搭建过程。

    下面是命令行示例:

    dotnet aspnet-codegenerator identity -dc TestWasmAuthIndividual.Server.Data.ApplicationDbContext --files "Account.Register;Account.Login;Account.Logout;Account.Manage.PersonalData" --force

    您需要从服务器项目执行此命令行。

    【讨论】:

      【解决方案3】:

      我正在使用 Blazor 服务器。我以 Identity 模板开始我的项目,当我尝试上面的命令行解决方案时出现错误。

      我在尝试搭建页面后遇到的错误让我认为搭建者并不真正了解 Blazor 周围的约定。由于组件生命周期方法、_ViewImports.cshtml 中的单例引用以及对组件本身的引用等原因,脚手架无法构建(即使正常构建完成)... Screengrab 1 Screengrab 2

      我使用的是 Net 5.0,我不确定 Net 6.0 中是否已经解决了这个问题。

      我最终删除了我的 Components 文件夹以及对它们的所有引用。脚手架所有页面(所以我不必再次这样做),然后使用版本控制恢复文件夹。

      【讨论】:

        猜你喜欢
        • 2022-10-07
        • 2021-04-10
        • 2021-07-24
        • 1970-01-01
        • 1970-01-01
        • 2022-09-25
        • 2021-06-21
        • 2015-10-16
        • 1970-01-01
        相关资源
        最近更新 更多