Skip to content
Microsoft Agent Skills技能与配置库·英文原文 ↗原件 ↓仓库 ↗

C# (.NET) Entry Point (DO NOT MODIFY) ​

The base Azure Functions template includes a properly configured Program.cs that should NOT be modified or replaced by recipes.

⛔ CRITICAL: Do NOT replace or modify Program.cs from the base template.

Base Template Program.cs ​

The official functions-quickstart-dotnet-azd template uses:

csharp
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

var host = new HostBuilder()
    .ConfigureFunctionsWebApplication()  // ASP.NET Core integration
    .ConfigureServices(services =>
    {
        services.AddApplicationInsightsTelemetryWorkerService();
        services.ConfigureFunctionsApplicationInsights();
    })
    .Build();

host.Run();

Why This Matters ​

FeatureConfigureFunctionsWebApplicationConfigureFunctionsWorkerDefaults
ASP.NET Core integration✅ Yes❌ No
IActionResult return types✅ Yes❌ No
[FromBody] model binding✅ Yes❌ No
App Insights integration✅ Built-in❌ Manual setup
Modern HTTP handling✅ Yes⚠️ Limited

What Recipes Should Provide ​

Recipes only need to add:

  1. Trigger function files (.cs files with [Function] attributes)
  2. Package references (.csproj additions for extensions)
  3. App settings (connection strings, configuration)

All triggers use attribute-based binding — no Program.cs modifications needed:

  • [HttpTrigger], [TimerTrigger], [CosmosDBTrigger]
  • [ServiceBusTrigger], [EventHubTrigger], [BlobTrigger]
  • [DurableClient], [SqlTrigger]

Common Mistake ​

❌ WRONG — Recipe overwrites Program.cs with outdated version:

csharp
var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()  // OLD PATTERN
    .Build();

✅ CORRECT — Recipe leaves Program.cs untouched, only adds function files.