dotnet-project-setup
Create or reorganize .NET solutions with clean project boundaries, repeatable SDK settings, and a maintainable baseline for libraries, apps, tests, CI, and local development.
.NET Project Setup
Trigger On
- creating a new .NET solution or restructuring an existing one
- setting up
Directory.Build.props, shared package management, or repo-wide defaults - defining project layout for apps, libraries, and test projects
Workflow
- Start from the app model and deployment target, then choose the smallest correct SDK and target framework set.
- Use solution folders and project names that reflect bounded contexts or product areas, not temporary implementation details.
- Centralize shared build settings, analyzer rules, nullable context, and package versions where it reduces duplication without hiding important differences.
- Create test projects and CI hooks early so new projects do not drift into unverified templates.
- Prefer project references and composition over circular dependencies or utility dumping grounds.
- Document the local build, test, and run path in repo docs or
AGENTS.mdwhen the workflow is not obvious.
Deliver
- a coherent solution structure
- shared build defaults that are easy to reason about
- starter quality and testing hooks for future work
Validate
- projects have explicit responsibility boundaries
- shared MSBuild settings do not accidentally override platform-specific needs
- a new contributor can build and test the repo without guessing
References
- patterns.md: solution layout conventions,
Directory.Build.props,Directory.Build.targets, Central Package Management,global.json,nuget.config, analyzers, multi-targeting, and source link - templates.md:
dotnet newtemplates for console apps, class libraries, ASP.NET Core APIs, worker services, Blazor, test projects, .NET Aspire, and gRPC services