DotNetDocs.Sdk
1.0.0-preview.11
See the version list below for details.
<Sdk Name="DotNetDocs.Sdk" Version="1.0.0-preview.11" />
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/obj
folders 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
.docsproj
file 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.
This package has 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.0.0-preview.19 | 0 | 9/16/2025 |
1.0.0-preview.18 | 0 | 9/16/2025 |
1.0.0-preview.17 | 12 | 9/15/2025 |
1.0.0-preview.16 | 14 | 9/15/2025 |
1.0.0-preview.15 | 14 | 9/14/2025 |
1.0.0-preview.14 | 11 | 9/14/2025 |
1.0.0-preview.13 | 14 | 9/13/2025 |
1.0.0-preview.12 | 11 | 9/13/2025 |
1.0.0-preview.11 | 11 | 9/13/2025 |
1.0.0-preview.10 | 81 | 9/5/2025 |
1.0.0-preview.9 | 119 | 9/5/2025 |
1.0.0-preview.8 | 128 | 9/3/2025 |
1.0.0-preview.7 | 133 | 9/1/2025 |
1.0.0-preview.6 | 122 | 9/1/2025 |
1.0.0-preview.5 | 140 | 8/30/2025 |
1.0.0-preview.4 | 165 | 8/29/2025 |
1.0.0-preview.3 | 168 | 8/29/2025 |
1.0.0-preview.2 | 169 | 8/28/2025 |
1.0.0-preview.1 | 173 | 8/27/2025 |