Blueprint: Worker Program.cs
Copy into apps/api/src/{ProjectName}.Worker/. See docs/conventions/backend/worker-projects.md.
{ProjectName}.Worker.csproj
<Project Sdk="Microsoft.NET.Sdk.Worker"> <ItemGroup> <ProjectReference Include="..\{ProjectName}.Infrastructure\{ProjectName}.Infrastructure.csproj" /> <ProjectReference Include="..\{ProjectName}.Application.Write\{ProjectName}.Application.Write.csproj" /> <ProjectReference Include="..\{ProjectName}.Application.Reactions\{ProjectName}.Application.Reactions.csproj" /> <ProjectReference Include="..\{ProjectName}.ServiceDefaults\{ProjectName}.ServiceDefaults.csproj" /> <PackageReference Include="OpenTelemetry.Extensions.Hosting" /> <PackageReference Include="OpenTelemetry.Instrumentation.Runtime" /> <PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" /> </ItemGroup></Project>Program.cs
using {ProjectName}.Infrastructure.DependencyInjection;
var builder = Host.CreateApplicationBuilder(args);
builder.AddServiceDefaults();builder.Services.AddInfrastructure(builder.Configuration);builder.Services.AddHostedService<OutboxDispatcherHostedService>();
var host = builder.Build();host.Run();Worker projects MUST NOT reference WebApi.