A comprehensive .NET SDK that simplifies project configuration, metadata management, and package creation for .NET applications targeting .NET 9.0.
- Focused on .NET 9.0: Optimized for the latest .NET framework
- MSBuildSdk Packaging Support: Properly configured for MSBuild SDK project packaging
- Standardized Project Structure: Enforces consistent organization across solution components
- Metadata Management: Automatically handles project metadata from markdown files
- Package Publishing: Streamlined NuGet package creation with proper metadata inclusion
- Documentation: Automated inclusion of documentation in packages
- GitHub Integration: Built-in support for GitHub workflows and CI/CD
- Cross-Platform Support: Compatible with Windows, macOS, and Linux
- Smart Project Detection: Automatic detection of primary, CLI, App, and Test projects
- Sdk: Core SDK implementation with MSBuild props and targets
- Sdk.App: Application-specific SDK extensions
- Sdk.Lib: Library-focused SDK components
- Sdk.CLI: Command-line application SDK support
- Sdk.Test: Testing infrastructure and configuration
To use this SDK in your project:
<Project Sdk="ktsu.Sdk">
<PropertyGroup>
<!-- Your project-specific properties here -->
</PropertyGroup>
</Project>
The SDK automatically detects different project types in your solution:
- Primary Project: The main project of your solution (YourSolution, YourSolution.Core)
- CLI Project: Command-line interface projects (YourSolution.CLI, YourSolutionCLI)
- App Project: Application projects (YourSolution.App, YourSolutionApp)
- Test Project: Test projects (YourSolution.Test, YourSolution.Tests)
Each project type receives appropriate default settings and references.
This SDK supports the following metadata files at the solution root:
README.md
: Project documentation (this file)AUTHORS.md
: Project authors and contributorsLICENSE.md
: Project license informationCHANGELOG.md
: Version history and changesDESCRIPTION.md
: Detailed project descriptionVERSION.md
: Current version informationTAGS.md
: Project tags for NuGet packagesCOPYRIGHT.md
: Copyright informationAUTHORS.url
: URL to authors' informationPROJECT.url
: URL to project information
These files are automatically included in the NuGet package and used to populate package metadata.
Projects automatically reference the primary project and use appropriate namespaces.
Library projects are automatically configured for NuGet packaging with proper metadata.
Projects are configured with multiple runtime identifiers for Windows, macOS, and Linux.
Internals are automatically exposed to test projects, and testing configurations are applied.
- .NET SDK 9.0 or later
See the LICENSE.md file for license information.
Contributions are welcome! Please feel free to submit a Pull Request.