DotNetDocs.Sdk 1.0.0-preview.31

This is a prerelease version of DotNetDocs.Sdk.
There is a newer version of this package available.
See the version list below for details.
<Sdk Name="DotNetDocs.Sdk" Version="1.0.0-preview.31" />
                    
For projects that support Sdk, copy this XML node into the project file to reference the package.

DotNetDocs.Sdk

NuGet Downloads License

<a href="https://dotnetdocs.com"> <img src="https://raw.githubusercontent.com/CloudNimble/DotNetDocs/refs/heads/dev/src/CloudNimble.DotNetDocs.Docs/images/logos/dotnetdocs.light.svg" alt="DotNetDocs Logo" width="450" /> </a>

The MSBuild SDK for documentation projects (.docsproj) that 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="C#" />

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>
    
    <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 the src/ 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

DotNetDocs Integration

The SDK automatically generates documentation when GenerateMintlifyDocs is enabled. Documentation is built from your project's assemblies and XML documentation files.

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>
  </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 8.0 or later
  • MSBuild 16.0 or later
  • Visual Studio 2019 or later (for full IDE support)

See Also

License

MIT License - see LICENSE for details.

There are no supported framework assets in this package.

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.1.0-preview.2 0 11/5/2025
1.1.0-preview.1 46 11/2/2025
1.0.3-preview.1 121 10/23/2025
1.0.2 163 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 106 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 100 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 125 9/24/2025
1.0.0-preview.19 262 9/16/2025
1.0.0-preview.18 257 9/16/2025
1.0.0-preview.17 239 9/15/2025
1.0.0-preview.16 201 9/15/2025
1.0.0-preview.15 172 9/14/2025
1.0.0-preview.14 99 9/14/2025
1.0.0-preview.13 103 9/13/2025
1.0.0-preview.12 100 9/13/2025
1.0.0-preview.11 50 9/13/2025
1.0.0-preview.10 133 9/5/2025
1.0.0-preview.9 167 9/5/2025
1.0.0-preview.8 174 9/3/2025
1.0.0-preview.7 182 9/1/2025
1.0.0-preview.6 171 9/1/2025
1.0.0-preview.5 188 8/30/2025
1.0.0-preview.4 212 8/29/2025
1.0.0-preview.3 214 8/29/2025
1.0.0-preview.2 214 8/28/2025
1.0.0-preview.1 219 8/27/2025