Start here. This is the direct spoken answer to practice first.
Why this question matters
A reliable promotion path moves one immutable artifact through environments while configuration, identities, data, and external integrations remain environment-owned. Each stage should add evidence without silently producing a different build.
I would build the .NET API once and promote the same artifact through dev, staging, and production. Each environment would have its own configuration, secrets, database, and external callback URLs. After each promotion I would run health and smoke checks before moving forward. That prevents the common mistake of testing one build and deploying a slightly different build to production.