project-structure

Establish .NET solution layout conventions with centralized build and package configuration.

Updated Apr 27, 2026
One-click install
npx skills add https://github.com/shahdanish/vibepos --skill project-structure-shahdanish
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: project-structure
Source: https://github.com/shahdanish/vibepos/tree/main/skills/project-structure
Command: npx skills add https://github.com/shahdanish/vibepos --skill project-structure-shahdanish

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It removes uncertainty and drift when starting or expanding a .NET solution by providing clear, repeatable conventions for solution layout, build properties, and centralized package management.

Core Features & Use Cases

  • Central package management: Use Directory.Packages.props so NuGet versions are defined in one place, avoiding version mismatch across projects.
  • Shared build properties: Use Directory.Build.props to standardize target framework, nullable, implicit usings, and warning policy across all projects.
  • Scalable folder layout: Separate source and tests (e.g., src/ vs tests/) and adopt merge-friendly solution structure (e.g., .slnx), making new features easier to add without reorganizing everything.

Quick Start

Load this skill when you create or reorganize a .NET solution, then align your projects to src/ and tests/ while centralizing build and package configuration in Directory.Build.props and Directory.Packages.props.

Frequently Asked Questions about project-structure

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

FAQPage Schema
How do I prevent NuGet version mismatch across multiple .NET projects?

To prevent NuGet version mismatch, use central package management by defining all package versions in a single Directory.Packages.props file. This ensures every project in your solution references the same package versions, eliminating configuration drift.

What is the best way to standardize .NET build properties across a solution?

The best way to standardize .NET build properties is using Directory.Build.props. It centralizes target framework, nullable, implicit usings, and warning policies, ensuring consistent MSBuild configuration across all projects without repeating properties.

How do I structure a multi-project .NET repository for scalability?

Structure a multi-project .NET repository by enforcing strict src/ and tests/ folder separation. Adopting a merge-friendly solution structure like .slnx makes adding new features easier without reorganizing existing project boundaries.

Do I need .slnx for .NET central package management to work?

No, central package management relies on Directory.Packages.props and MSBuild, not .slnx. However, adopting .slnx alongside central package management establishes a merge-friendly solution structure that prevents configuration drift in multi-project repositories.

Why does configuration drift happen in .NET solutions and how to fix it?

Configuration drift happens when build properties and package versions are defined locally per project. Fix it by centralizing settings in Directory.Build.props and Directory.Packages.props, applying consistent naming and folder boundaries across environments.