Blazor 在尝试激活 DefaultAuthorizationPolicyProvider 时无法解析 AuthorizationOptions

Blazor wasm unable to resolve AuthorizationOptions while attempting to activate DefaultAuthorizationPolicyProvider

我正在开发 Blazor wasm 应用程序,运行 在 App.razor 文件中添加 AuthorizeRouteView 组件时出现异常。我花了很多时间试图解决这个问题,因为这方面的资源很少,所以我想在这里分享解决方案:

错误信息是:

System.InvalidOperationException:尝试激活 'Microsoft.AspNetCore.Authorization.DefaultAuthorizationPolicyProvider'.

时无法解析类型 'Microsoft.Extensions.Options.IOptions`1[Microsoft.AspNetCore.Authorization.AuthorizationOptions]' 的服务

包版本:

    <PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="3.2.0-preview1.20073.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.DevServer" Version="3.2.0-preview1.20073.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview1.20073.1" />
    <PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="3.1.1" PrivateAssets="all"/>

根据以下描述,我只需要在 Program.cs 服务中添加 AddAuthorizationCore():

builder.Services.AddAuthorizationCore();

然后会产生上述异常...

解决方案

当我第一次将 AddOptions() 添加到 Program.cs 中的服务时,问题就解决了:

builder.Services.AddOptions();
builder.Services.AddAuthorizationCore();

我有一个从 Blazor 3.1 预览版 4 开始的项目,不需要这个 "AddOptions",一切都很好。 然后我将它迁移到 Blazor 3.2.0 预览版 1,做了所有推荐的东西(不再启动,只使用 program.cs 等等),突然一切都坏了。 LYper 回答中的这两行解决了我的问题。谢谢。 有谁知道为什么???