无法在我的 .NET 6 类库中解析“AddAuthorization”

Posted

技术标签:

【中文标题】无法在我的 .NET 6 类库中解析“AddAuthorization”【英文标题】:Can't resolve `AddAuthorization` in my .NET 6 class library 【发布时间】:2022-01-21 04:35:36 【问题描述】:

所以我确定我在这里遗漏了一些非常明显的东西,但我似乎无法确定它。

我有一个 .NET 6 类库:

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net6.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
    </PropertyGroup>

    <ItemGroup>
      <PackageReference Include="Microsoft.AspNetCore.Authorization" Version="6.0.1" />
      <PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
      <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
    </ItemGroup>

</Project>

我的库中有一个构建器正在尝试注册AddAuthorization 服务,但由于某种原因无法解决:

namespace MyLib;

using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.DependencyInjection;

public class MyLibBuilder

    public IServiceCollection Services  get; 

    public MyLibBuilder(IServiceCollection services)
    
        Services = services;
    

    public MyLibBuilder MapAuthorizationPolicies()
    
        Services.AddAuthorization();

        return this;
    

我已经:

三重检查我安装了Microsoft.Extensions.DependencyInjectionMicrosoft.AspNetCore.Authorization 重建解决方案 卸载并重新加载项目

而且没有任何骰子。我敢肯定,一旦我离开一天,它就会立即点击,但这真的很困扰我????我到底错过了什么?

注意:如果我将其更改为 Microsoft.NET.Sdk.Web 项目,它解决,但是我需要一个 Main 来运行,这在这里没有实际意义,因为这只是一个类库。 Web 必须做一些我错过但我没有看到的其他事情......

【问题讨论】:

您的命名空间中是否有“授权”? 不。尝试更改命名空间以防万一。没有快乐 也许这有帮助:github.com/aspnet/Announcements/issues/386 哇,是的,谢谢!不过很奇怪。我也尝试过使用...Policy 包,即使它也不起作用——必须使用Core。不管怎样,是的,这很奇怪,但可以解决。非常感谢! 也很奇怪,我一直在使用,甚至现在仍然可以在没有 Core 或使用 Policy 包的 Web 项目中使用 AddAuthorization。仍然很困惑,但很高兴让它工作 【参考方案1】:

根据this 的说法,这是一个重大变化。

以下是推荐的解决方案,尽管我尝试引用 Policy 仍然没有任何乐趣。

Either add a reference to Microsoft.AspNetCore.Authorization.Policy or use AddAuthorizationCore instead

【讨论】:

以上是关于无法在我的 .NET 6 类库中解析“AddAuthorization”的主要内容,如果未能解决你的问题,请参考以下文章

在 .NET 6.0 类库中使用 Prism.DryIoc 时“目标平台必须设置为 Windows”

我需要弄清楚如何将我的类库中的枚举绑定到我的应用程序中的单选按钮

.net Core 6 - 尝试激活时无法解析服务类型

类库的 app.config

如何在 .NET Core 类库中使用 System.Windows.Forms

从类库访问用户上下文