.NET Analyzer Design · 11-001 Entrypoint Resolver (2025-12-09)

Goals

Inputs

Outputs

Algorithm (deterministic)

  1. Parse project: target frameworks, RIDs, publish flags; normalize to ordered sets.
  2. Discover publish artefacts under bin/<Configuration>/<TFM>/... and publish/ folders; prefer *.runtimeconfig.json when present.
  3. Read *.deps.json to extract runtime targets and resolve primary entry assembly; fall back to apphost name.
  4. Compute MVID from PE header; compute SHA-256 over *.dll/*.exe bytes; capture file size.
  5. Classify host:
    • apphost present -> hostKind = apphost; detect single-file bundle via marker sections.
    • Framework-dependent -> hostKind = framework-dependent; use runtimeconfig probing paths.
  6. Infer ALC hints: scan deps for runtimeconfig.dev.json probing paths and additionalProbingPaths; add known SDK paths.
  7. Emit entrypoint with deterministic ordering: sort by assembly name, then RID, then TFM.

Determinism & Offline

Test & Fixture Plan

Next Steps