DotNetDocs.Sdk
1.0.0-preview.5
See the version list below for details.
<Sdk Name="DotNetDocs.Sdk" Version="1.0.0-preview.5" />
#:sdk DotNetDocs.Sdk@1.0.0-preview.5
CloudNimble.DotNetDocs.Sdk
MSBuild SDK for documentation projects (.docsproj) - provides a clean way to include documentation in .NET solutions.
Features
- 🚀 Zero Configuration - Works out of the box for common documentation types
- 📁 Clean Folders - No
bin/objfolders cluttering your documentation directories - 🔍 Auto-Detection - Automatically detects documentation type (Mintlify, DocFX, MkDocs, Jekyll, Hugo)
- 📝 Smart Includes - Automatically includes relevant files based on documentation type
- 🛠️ Integration - Optional build targets for linting, preview, and deployment
- 🎯 Visual Studio - Full IntelliSense and editing support in Visual Studio
Quick Start
1. Create a .docsproj file
<Project Sdk="DotNetDocs.Sdk/1.0.0">
</Project>
2. Add to solution
For .slnx files:
<Project Path="docs/MyProject.Docs.docsproj" Type="{9A19103F-16F7-4668-BE54-9A1E7A4F7556}" projectTypeName="SharedProject" />
For .sln files:
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyProject.Docs", "docs\MyProject.Docs.docsproj", "{GUID}"
EndProject
Documentation Type Detection
The SDK automatically detects your documentation type based on configuration files:
| Type | Detection File | Auto-Included Files |
|---|---|---|
| Mintlify | docs.json |
*.mdx, *.md, api-reference/**, conceptual/**, overrides/**, logo/** |
| DocFX | docfx.json |
*.md, *.yml, articles/**, api/**, templates/** |
| MkDocs | mkdocs.yml |
docs/**/*.md, requirements.txt, overrides/** |
| Jekyll | _config.yml |
*.md, *.html, _posts/**, _layouts/**, _includes/** |
| Hugo | hugo.toml |
content/**, layouts/**, static/**, themes/** |
| Generic | fallback | *.md, *.rst, docs/**, common formats |
Configuration Options
Basic Options
<Project Sdk="DotNetDocs.Sdk/1.0.0">
<PropertyGroup>
<KeepLocalOutput>true</KeepLocalOutput>
<DocumentationType>Mintlify</DocumentationType>
<GenerateMintlifyDocs>true</GenerateMintlifyDocs>
<LintMarkdown>true</LintMarkdown>
<ShowDocumentationStats>true</ShowDocumentationStats>
</PropertyGroup>
</Project>
Advanced Options
<Project Sdk="DotNetDocs.Sdk/1.0.0">
<PropertyGroup>
<PreviewDocumentation>true</PreviewDocumentation>
<DeployDocumentation>true</DeployDocumentation>
<ValidateLinks>true</ValidateLinks>
<GeneratePdf>true</GeneratePdf>
</PropertyGroup>
</Project>
Separate Documentation Location
If your .docsproj file is in a different location than your documentation files (e.g., project in src/ but docs in docs/), use the DocumentationRoot property:
<Project Sdk="DotNetDocs.Sdk/1.0.0">
<PropertyGroup>
<DocumentationRoot>$(MSBuildThisFileDirectory)..\..\docs\</DocumentationRoot>
<GenerateMintlifyDocs>true</GenerateMintlifyDocs>
<ShowDocumentationStats>true</ShowDocumentationStats>
</PropertyGroup>
</Project>
This is particularly useful when you want to:
- Keep your
.docsprojfile with other project files in thesrc/folder - Have all documentation content in a separate
docs/folder at the repository root - Maintain a clean separation between code and documentation
Available Build Targets
| Target | Description |
|---|---|
DocumentationHelp |
Show available options and current configuration |
DocumentationStats |
Display statistics about your documentation |
GenerateMintlifyDocs |
Generate Mintlify documentation (requires EasyAF.Tools) |
LintMarkdown |
Lint markdown files for issues |
PreviewDocumentation |
Start local preview server |
ValidateLinks |
Check for broken links |
GeneratePdf |
Generate PDF output |
DeployDocumentation |
Deploy to hosting platform |
EasyAF.Tools Integration
The SDK automatically checks for and attempts to install CloudNimble.EasyAF.Tools when using Mintlify features. If automatic installation fails, you'll see instructions to visit this GitHub issue and leave a reaction emoji to get access to the tools.
Usage Examples
# Show help and current configuration
dotnet build -t:DocumentationHelp
# Show documentation statistics
dotnet build -t:DocumentationStats
# Generate Mintlify docs manually
dotnet build -t:GenerateMintlifyDocs
# Start preview server
dotnet build -t:PreviewDocumentation
Integration Examples
Mintlify Project
<Project Sdk="DotNetDocs.Sdk/1.0.0">
<PropertyGroup>
<GenerateMintlifyDocs>true</GenerateMintlifyDocs>
<LintMarkdown>true</LintMarkdown>
<ShowDocumentationStats>true</ShowDocumentationStats>
</PropertyGroup>
</Project>
Multi-Format Project
<Project Sdk="DotNetDocs.Sdk/1.0.0">
<PropertyGroup>
<DocumentationType>Generic</DocumentationType>
<KeepLocalOutput>true</KeepLocalOutput>
</PropertyGroup>
<ItemGroup>
<None Include="custom-docs/**/*.rst" />
<None Include="api-specs/**/*.yaml" />
</ItemGroup>
</Project>
CI/CD Integration
# GitHub Actions example
- name: Build Documentation
run: dotnet build docs/MyProject.Docs.docsproj -p:DeployDocumentation=true
Benefits Over Manual Configuration
| Feature | Manual Setup | CloudNimble.DotNetDocs.Sdk |
|---|---|---|
| Configuration | 20+ lines of MSBuild | 2 lines |
| File Includes | Manual specification | Automatic by type |
| Output Cleanup | Custom Directory.Build.props | Built-in |
| Type Detection | None | Automatic |
| Build Integration | Custom targets | Ready-to-use targets |
| Maintenance | High | Zero |
Requirements
- .NET SDK 6.0 or later
- MSBuild 16.0 or later
- Visual Studio 2019 or later (for full IDE support)
Contributing
This SDK is part of the CloudNimble EasyAF framework. Contributions welcome!
License
MIT License - see LICENSE for details.
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.0-preview.14 | 153 | 11/12/2025 |
| 1.1.0-preview.13 | 154 | 11/11/2025 |
| 1.1.0-preview.12 | 132 | 11/9/2025 |
| 1.1.0-preview.11 | 136 | 11/9/2025 |
| 1.1.0-preview.10 | 124 | 11/7/2025 |
| 1.1.0-preview.9 | 128 | 11/6/2025 |
| 1.1.0-preview.8 | 126 | 11/6/2025 |
| 1.1.0-preview.7 | 131 | 11/6/2025 |
| 1.1.0-preview.6 | 128 | 11/6/2025 |
| 1.1.0-preview.5 | 130 | 11/6/2025 |
| 1.1.0-preview.4 | 126 | 11/5/2025 |
| 1.1.0-preview.3 | 132 | 11/5/2025 |
| 1.1.0-preview.2 | 133 | 11/5/2025 |
| 1.1.0-preview.1 | 104 | 11/2/2025 |
| 1.0.3-preview.1 | 121 | 10/23/2025 |
| 1.0.2 | 169 | 10/23/2025 |
| 1.0.1 | 159 | 10/20/2025 |
| 1.0.1-preview.1 | 116 | 10/20/2025 |
| 1.0.0 | 81 | 10/18/2025 |
| 1.0.0-preview.32 | 34 | 10/18/2025 |
| 1.0.0-preview.31 | 117 | 10/16/2025 |
| 1.0.0-preview.30 | 118 | 10/15/2025 |
| 1.0.0-preview.29 | 118 | 10/13/2025 |
| 1.0.0-preview.28 | 115 | 10/13/2025 |
| 1.0.0-preview.27 | 107 | 10/12/2025 |
| 1.0.0-preview.26 | 89 | 10/10/2025 |
| 1.0.0-preview.25 | 95 | 10/10/2025 |
| 1.0.0-preview.24 | 120 | 10/5/2025 |
| 1.0.0-preview.23 | 101 | 10/3/2025 |
| 1.0.0-preview.22 | 103 | 10/3/2025 |
| 1.0.0-preview.21 | 97 | 9/28/2025 |
| 1.0.0-preview.20 | 126 | 9/24/2025 |
| 1.0.0-preview.19 | 263 | 9/16/2025 |
| 1.0.0-preview.18 | 257 | 9/16/2025 |
| 1.0.0-preview.17 | 240 | 9/15/2025 |
| 1.0.0-preview.16 | 201 | 9/15/2025 |
| 1.0.0-preview.15 | 173 | 9/14/2025 |
| 1.0.0-preview.14 | 100 | 9/14/2025 |
| 1.0.0-preview.13 | 105 | 9/13/2025 |
| 1.0.0-preview.12 | 101 | 9/13/2025 |
| 1.0.0-preview.11 | 52 | 9/13/2025 |
| 1.0.0-preview.10 | 141 | 9/5/2025 |
| 1.0.0-preview.9 | 173 | 9/5/2025 |
| 1.0.0-preview.8 | 180 | 9/3/2025 |
| 1.0.0-preview.7 | 187 | 9/1/2025 |
| 1.0.0-preview.6 | 177 | 9/1/2025 |
| 1.0.0-preview.5 | 193 | 8/30/2025 |
| 1.0.0-preview.4 | 218 | 8/29/2025 |
| 1.0.0-preview.3 | 219 | 8/29/2025 |
| 1.0.0-preview.2 | 221 | 8/28/2025 |
| 1.0.0-preview.1 | 225 | 8/27/2025 |