标识:已更改 UI 的默认 Bootstrap 版本

从 ASP.NET Core 6.0 开始,标识 UI 默认为使用 Bootstrap 版本 5。 ASP.NET Core 3.0 到 5.0 使用 Bootstrap 版本 4。

引入的版本

ASP.NET Core 6.0

行为

AddDefaultIdentity<TUser>(IServiceCollection) 调用内部专用方法 TryResolveUIFrameworkTryResolveUIFramework 读取应用程序程序集中的 UIFrameworkUIFramework 版本默认为:

  • 适用于 .NET 6 SDK 的 Bootstrap 5
  • 适用于 .NET Core 3.1 和 .NET 5 SDK 的 Bootstrap 4

通过模板创建的 ASP.NET Core 3.1 和 5.0 应用包含 wwwroot\lib\bootstrap 中的 Bootstrap 4。 通过模板创建的 ASP.NET Core 6 应用使用 Bootstrap 5。 ASP.NET Core 3.1 或 5.0 应用迁移到 .NET 6 时,应用程序检测到 UIFramework 版本 5,而 wwwroot\lib\bootstrap 包含版本 4。 此版本不匹配会错误地呈现标识模板。

更改原因

在 ASP.NET Core 6.0 时间范围内发布了 Bootstrap 5。

受此更改影响的应用使用默认标识 UI 并已将其添加到 Startup.ConfigureServices,如以下代码所示:

services.AddDefaultIdentity<IdentityUser>()

请执行以下一项操作:

  • 将 MSBuild 属性 IdentityUIFrameworkVersion 添加到项目文件中,并指定 Bootstrap 4:

    <PropertyGroup>
      <TargetFramework>net6.0</TargetFramework>
      <IdentityUIFrameworkVersion>Bootstrap4</IdentityUIFrameworkVersion>
    </PropertyGroup>
    

    前面的标记将 UIFramework 版本设置为 Bootstrap 4,与 ASP.NET Core 3.1 和 5.0 中使用的 Bootstrap 版本相同。

  • 重命名或删除 wwwroot\lib\bootstrap 文件夹并将其替换为由模板生成的 ASP.NET Core 6 应用中的 wwwroot\lib\bootstrap 文件夹。 标识模板可应用此更改,但使用 Bootstrap 的应用可能需要参考 Bootstrap 5 迁移指南

受影响的 API

AddDefaultIdentity<TUser>(IServiceCollection)