dotnet-project-structure

Create .NET solutions with .slnx, centralized props, and SDK pinning.

1.1k|101|Updated Nov 12, 2025
One-click install
npx skills add https://github.com/Aaronontheweb/dotnet-skills --skill dotnet-project-structure
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: dotnet-project-structure
Source: https://github.com/Aaronontheweb/dotnet-skills/tree/main/skills/project-structure
Command: npx skills add https://github.com/Aaronontheweb/dotnet-skills --skill dotnet-project-structure

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill standardizes and modernizes .NET project scaffolding by introducing a .slnx-based solution format, centralized build configuration, and SDK pinning to ensure consistent and reproducible builds across repositories.

Core Features & Use Cases

  • Modern solution structure: Introduces a .slnx-based solution format, Directory.Build.props, and Directory.Packages.props for predictable builds.
  • Centralized version management: Uses global.json for SDK pinning and RELEASE_NOTES.md to track and propagate versioning across the repo.
  • SourceLink and debugging: Enables SourceLink for attaching source to NuGet packages and ensures symbol packaging consistency via NuGet.Config.
  • Ideal use cases: Multi-project solutions and cross-repo teams seeking standardized build pipelines and upgrade paths.

Quick Start

Initialize a new repository with a modern .NET structure defined by .slnx, centralized props, and SDK pinning, then commit the baseline files.

Frequently Asked Questions about dotnet-project-structure

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

FAQPage Schema
How do I centralize .NET build configuration across multiple projects?▼

Centralize .NET build configuration by using Directory.Build.props and Directory.Packages.props to enforce predictable builds and manage dependencies across all projects in a solution. This ensures consistent settings without duplicating properties in individual .csproj files.

What is the .slnx solution format and when do I need it for .NET repos?▼

The .slnx solution format is a modern XML-based solution structure for .NET repos. You need it when standardizing multi-project solutions and cross-repository builds, as it provides a cleaner, more predictable alternative to traditional .sln files.

How do I pin the .NET SDK version for reproducible builds?▼

Pin the .NET SDK version for reproducible builds by adding a global.json file to your repository root. This ensures all developers and CI pipelines use the exact same SDK version, preventing build failures from unexpected SDK updates.

How do I configure SourceLink and symbol packaging for NuGet packages?▼

Configure SourceLink and symbol packaging by setting up NuGet.Config for symbol consistency and enabling SourceLink in your build properties. This attaches source code to NuGet packages, allowing step-through debugging of distributed packages.

Can I use centralized version management for cross-repo .NET teams?▼

Yes, centralized version management works for cross-repo .NET teams by combining global.json for SDK pinning and RELEASE_NOTES.md to track and propagate versioning. This standardizes upgrade paths and ensures traceability across multiple repositories.

What is the best way to structure a modern .NET repository?▼

The best way to structure a modern .NET repository is combining .slnx solution files, Directory.Build.props, Directory.Packages.props, global.json, and NuGet.Config. This setup centralizes build configuration, SDK pinning, and version management for consistent reproducible builds.