project-structure

Standardize .NET solution and project structure with centralized build settings and package versions.

640|145|Updated Feb 20, 2026
One-click install
npx skills add https://github.com/codewithmukesh/dotnet-claude-kit --skill project-structure-codewithmukesh
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: project-structure
Source: https://github.com/codewithmukesh/dotnet-claude-kit/tree/main/skills/project-structure
Command: npx skills add https://github.com/codewithmukesh/dotnet-claude-kit --skill project-structure-codewithmukesh

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Inconsistent solution layouts, duplicated build settings, and scattered package versions make .NET repositories hard to maintain, cause version drift, and increase merge conflicts. This Skill prescribes a single, repeatable layout and centralized configuration to reduce duplication and enforce team conventions.

Core Features & Use Cases

  • Central package management using Directory.Packages.props to keep package versions singular and auditable.
  • Shared build properties via Directory.Build.props to enforce target frameworks, nullable, implicit usings, and compiler rules across projects.
  • Modern solution layout with .slnx, src/tests separation, global.json SDK pinning, and clear naming conventions for projects, namespaces, and test projects.
  • Use Case: Initialize a new API solution that uses centralized package versions, enforces build settings, separates tests, and is ready for CI with consistent SDK pinning.

Quick Start

Create a repository root with an .slnx solution, add Directory.Build.props and Directory.Packages.props, place source projects under src and tests under tests, and pin the SDK using global.json.

Frequently Asked Questions about project-structure

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I centralize NuGet package versions across multiple .NET projects?

Central package management uses Directory.Packages.props to keep package versions singular and auditable, reducing version drift and merge conflicts. Place this file at the repository root so all projects inherit consistent dependency versions.

What is Directory.Build.props used for in a .NET solution?

Directory.Build.props enforces shared MSBuild properties across projects, including target frameworks, nullable, implicit usings, and compiler rules. It eliminates duplicated build settings and ensures team conventions are applied consistently.

Does central package management work with older .NET SDK versions?

Central package management requires a compatible .NET SDK pinned via global.json at the repository root. This ensures all developers and CI environments use the same SDK version that supports Directory.Packages.props functionality.

How do I structure a new ASP.NET Core solution with src and tests separation?

Create a repository root with a .slnx solution file, add Directory.Build.props and Directory.Packages.props, place source projects under src and test projects under tests, and pin the SDK using global.json for consistent builds.

Why should I use central package management instead of individual PackageReference versions?

Central package management keeps package versions singular and auditable, preventing version drift and reducing merge conflicts. Scattered package versions across individual projects make repositories hard to maintain and cause inconsistent dependency behavior.