I want to create an extension method for WebApplicationBuilder:
public static void AddData(this WebApplicationBuilder builder)
{
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(option =>
{
option.UseSqlite(connectionString);
});
}
this method works in a project that use: <Project Sdk="Microsoft.NET.Sdk.Web">,
but if I put this method in a class libary then it doesn't work (<Project Sdk="Microsoft.NET.Sdk>) because it doesn't find Microsoft.AspNetCore.Builder
Otherwise, if I use <Project Sdk="Microsoft.NET.Sdk.Web"> the compiler say that there is no Main in the project.
How can I do?
Why can't I write this?
using Microsoft.AspNetCore.Builder;
I had exactly the same problem but this Microsoft doc explains what you need to do.
Add
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
to your .csproj and you can then use
using Microsoft.AspNetCore.Builder;
in your regular class library which targets Microsoft.NET.Sdk.
For future people coming here. You can use IHostApplicationBuilder from Microsoft.Extensions.Hosting.Abstractions
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With