project-setup

Creates and restructures .NET solutions with shared build settings, project templates, and test hooks.

Updated May 2, 2026
One-click install
npx skills add https://github.com/hdeshev/pi-config --skill project-setup-hdeshev
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: project-setup
Source: https://github.com/hdeshev/pi-config/tree/main/agent/skills/project-setup
Command: npx skills add https://github.com/hdeshev/pi-config --skill project-setup-hdeshev

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Setting up a new .NET solution or restructuring an existing one involves many scattered decisions: project layout, naming conventions, shared MSBuild settings, package version management, and test infrastructure. This Skill provides a repeatable workflow and reference patterns so the resulting repository has clean project boundaries and a maintainable baseline. ## Core Features & Use Cases - Solution Structure Guidance: Defines directory layouts, project naming conventions, and bounded-context organization for apps, libraries, and test projects. - Shared Build Configuration: Covers Directory.Build.props, Directory.Build.targets, Central Package Management, global.json, nuget.config, analyzers, and multi-targeting. - Project Templates: Documents dotnet new templates for console apps, class libraries, ASP.NET Core APIs, worker services, Blazor, test projects, .NET Aspire, and gRPC services. - Use Case: When starting a new .NET product, use this Skill to scaffold the solution, centralize package versions, pin the SDK, and wire up xUnit test projects and CI-ready build defaults in one pass. ## Quick Start Ask the agent to create a new .NET solution with a class library, a minimal Web API, and xUnit test projects using centralized package management.

Frequently Asked Questions about project-setup

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

FAQPage Schema
How do I set up a new .NET solution with multiple projects?▼

Create the solution with dotnet new sln, then add projects using dotnet new classlib, webapi, or xunit into src/ and tests/ folders. Register them with dotnet sln add and wire dependencies with dotnet add reference.

How to centralize NuGet package versions in a .NET repository?▼

Enable Central Package Management by adding a Directory.Packages.props file with ManagePackageVersionsCentrally set to true. Declare PackageVersion entries there, and project files then reference packages without version numbers.

What is Directory.Build.props used for in .NET?▼

Directory.Build.props is automatically imported by MSBuild for all projects in its directory tree. It centralizes shared settings like TargetFramework, Nullable, ImplicitUsings, analyzer configuration, and package metadata to reduce duplication.

Does global.json affect which .NET SDK version builds the project?▼

Yes, global.json pins the SDK version used by the dotnet CLI for the repository. The rollForward policy controls whether newer feature bands or patches may be substituted when the exact version is missing.

When should I use multi-targeting in a .NET class library?▼

Use TargetFrameworks with values like net9.0, net8.0, and netstandard2.0 when the library must run on multiple runtimes. Add conditional ItemGroup entries and #if directives for framework-specific dependencies and APIs.