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.