如何在类库中导入WebApplicationBuilder?

Val*_*lli 27 .net c# asp.net

我想为 WebApplicationBuilder 创建一个扩展方法:

public static void AddData(this WebApplicationBuilder builder)
{
    var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
    builder.Services.AddDbContext<ApplicationDbContext>(option =>
    {
        option.UseSqlite(connectionString);
    });
}
Run Code Online (Sandbox Code Playgroud)

此方法适用于使用:的项目<Project Sdk="Microsoft.NET.Sdk.Web">,但如果我将此方法放入类库中,则它不起作用(<Project Sdk="Microsoft.NET.Sdk>),因为它找不到Microsoft.AspNetCore.Builder

否则,如果我使用<Project Sdk="Microsoft.NET.Sdk.Web">编译器,就会说项目中没有 Main。

我能怎么做?

为什么我不能写这个?

using Microsoft.AspNetCore.Builder;
Run Code Online (Sandbox Code Playgroud)

Dut*_*tts 44

我遇到了完全相同的问题,但这个 Microsoft 文档解释了您需要做什么。

添加

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

到您的 .csproj 然后您可以使用

using Microsoft.AspNetCore.Builder;
Run Code Online (Sandbox Code Playgroud)

在您的常规类库中,其目标是Microsoft.NET.Sdk.