news 2026/9/6 15:49:36

构建并运行 AutoGen for .NET 官网:DocFX 文档站点的构建流程与配置详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
构建并运行 AutoGen for .NET 官网:DocFX 文档站点的构建流程与配置详解

构建并运行 AutoGen for .NET 官网:DocFX 文档站点的构建流程与配置详解

【免费下载链接】autogenA programming framework for agentic AI项目地址: https://gitcode.com/GitHub_Trending/au/autogen

本文基于 AutoGen 仓库中dotnet/website/README.md的官方说明展开,介绍如何用 .NET 工具链与 DocFX 在本地构建并运行 AutoGen for .NET 的官方网站。读完之后,你将掌握文档站的两步构建命令(dotnet tool restoredotnet tool run docfx)背后的完整机制:工具清单如何声明 DocFX 版本、docfx.json如何把 C# 源码元数据与 Markdown 内容分别加工为 API 参考和教程页面,以及站点目录结构、模板与静态资源的组织方式。

前提条件

官方说明(website/README.md)要求本地环境满足:

  • dotnet 7.0 或更高版本

构建命令需要能够访问 .NET SDK 以执行dotnet tool系列命令。值得注意的是,仓库根部的 dotnet/global.json 将 SDK 版本进一步约束为9.0.100,并配置了"rollForward": "latestFeature"

{ "sdk": { "version": "9.0.100", "rollForward": "latestFeature" } }

这意味着在dotnet/目录内执行任何dotnet命令时,SDK 解析会优先选用不低于 9.0.100 的同大版本最新 feature band,实际效果是比 README 中“7.0 or later”的最低要求更严格。若本地仅有 7.x/8.x SDK 且未安装 9.0,构建会因版本不匹配而失败,这是该站点构建在版本前提上最容易被忽略的坑。

第一步:dotnet tool restore还原本地工具

构建流程的第一步是在仓库的dotnet/目录下执行:

dotnet tool restore

该命令并非安装全局包,而是根据仓库内的本地工具清单(tool manifest)还原可执行工具。AutoGen 的工具清单位于 dotnet/.config/dotnet-tools.json:

{ "version": 1, "isRoot": true, "tools": { "dotnet-repl": { "version": "0.1.205", "commands": ["dotnet-repl"], "rollForward": true }, "docfx": { "version": "2.67.5", "commands": ["docfx"], "rollForward": true } } }

从该清单可以看出两个关键点:

  1. DocFX 版本被固定为 2.67.5,并开启rollForward,即当 NuGet 源上存在更高版本时可向前滚动;构建者不需要手动dotnet tool install docfx,只要执行dotnet tool restore即可在.dotnet/tools缓存中准备好工具。
  2. 清单中还声明了dotnet-repl,供仓库中交互式开发工具(如AutoGen.DotnetInteractive相关场景)使用,与网站构建无直接关系,但同属一次 restore 的还原范围。

工具还原后,DocFX 作为“本地工具”只在该目录树内生效,这也是为什么构建命令必须autogen/dotnet目录下执行——工具清单按目录根(isRoot: true)定位,换个目录dotnet tool run将找不到 docfx 命令。

第二步:dotnet tool run docfx website/docfx.json --serve

工具就绪后,执行官方给出的第二条命令:

dotnet tool run docfx website/docfx.json --serve

这条命令做了三件事:

  • dotnet tool run docfx:以本地工具方式调用还原好的 DocFX 可执行文件(等价于直接调用docfx);
  • website/docfx.json:显式指定站点构建配置文件,DocFX 将按其中的 metadata 与 build 两段流水线执行;
  • --serve:构建完成后启动本地静态服务器持续监听文件变化并重新构建,随后打开浏览器访问http://localhost:8080即可实时预览网站。

配置文件的元数据阶段:从 csproj 生成 API 参考

dotnet/website/docfx.json 的metadata段定义了 API 文档的输入:

"metadata": [ { "src": [ { "files": ["src/**/*.csproj"], "src": "../" } ], "dest": "api", "includePrivateMembers": false, "namespaceLayout": "flattened", "memberLayout": "samePage", "allowCompilationErrors": false, "filter": "filterConfig.yml" } ]

逐字段解读:

  • src"../",即相对website/目录的父目录——也就是dotnet/源码根;文件过滤式src/**/*.csproj表示扫描该目录下全部项目的工程文件,DocFX 会编译这些程序集以提取公共 API 符号;
  • dest: "api"指定元数据输出到站点的api/目录,对应 toc.yml 中的 “API Reference” 一级入口;
  • namespaceLayout: "flattened"memberLayout: "samePage"决定页面组织方式:命名空间不生成逐级子目录,类型与其成员同页展示,减少小页面的碎片化;
  • filter: "filterConfig.yml"引用了 dotnet/website/filterConfig.yml,内容为:
apiRules: - exclude: uidRegex: ^AutoGen.SourceGenerator

即从 API 参考中排除AutoGen.SourceGenerator命名空间——该工程是 Roslyn 源码生成器(服务于函数调用契约生成),属于构建期工具,不需要出现在面向使用者的 API 文档中。

需要特别留意allowCompilationErrors: false:元数据阶段要求被扫描的 C# 代码能够成功编译,因此运行网站构建的前提是dotnet/下源码处于可编译状态,这解释了为什么仓库构建脚本会把dotnet build与网站文档检查放在同一条流水线上。

配置文件的构建阶段:内容收集、模板与输出

build段定义了站点页面的组成:

  • content:收集api/**.yml(元数据阶段产物)、articles/**.mdtutorial/**.mdrelease_note/**.md以及顶层*.md(即 index.md)与各自的toc.yml
  • resource:复制images/**作为静态资源;
  • output_site,即构建产物目录;
  • template["default", "modern", "template"]三层模板叠加——前两者是 DocFX 内置主题,第三个template指向仓库内的 dotnet/website/template 自定义模板目录,其中public/main.js提供站点级脚本扩展;
  • globalMetadata:注入站点级元信息,包括_appTitle/_appName(“AutoGen for .NET”)、_appLogoPath_appFaviconPath(指向 images/ag.ico)、页脚_appFooter,以及_gitContribute(指向上游仓库的dotnet分支,用于生成“编辑此页”贡献链接)。

站点内容结构:首页是如何拼出来的

网站首页 dotnet/website/index.md 只有一行:

[!INCLUDE [](https://link.gitcode.com/i/57729c77c4d38c1bcadf3c7dc92b9dfc)]

它通过 DocFX 的INCLUDE语法把 dotnet/website/articles/getting-start.md 整篇引入首页。该文章是面向使用者的入门内容:介绍通过dotnet add package AutoGen安装核心包、创建可对话 Agent 的代码片段(引用 dotnet/samples/AgentChat/Autogen.Basic.Sample/CodeSnippet 下的代码片段文件),并链接到教程与示例。

站点导航由 dotnet/website/toc.yml 定义,一级条目包括:

导航条目指向内容
Docsarticles/功能文章集,如 Agent 概览、群聊、函数调用、中间件、Ollama/Mistral/Gemini/SemanticKernel 等主题
Tutorialtutorial/交互式教程,如 Chat-with-an-agent.md、带工具的 Agent 创建、图像对话等
API Referenceapi/由 metadata 阶段自动生成的 C# API 文档
Release Notesrelease_note/各版本发布说明(0.2.2.md 等)
Comparisonarticles/function-comparison-page-between-python-AutoGen-and-autogen.net.mdPython AutoGen 与 AutoGen.Net 的函数对照
Other Languages下拉菜单指向 Python 版文档站

从目录结构看,articles/下按提供商分设子目录(AutoGen.Gemini/AutoGen.Ollama/AutoGen.SemanticKernel/),主题文件平铺于根层,形成“功能文章 + 分厂商专题”的组织方式;教程与发布说明则是相对独立的轻量文档集。

构建结果与注意事项

  • 执行完上述两条命令后,浏览器访问http://localhost:8080即为--serve模式下的实时站点;不带--serve时产物位于website/_site/,可作为静态站部署。
  • 构建入口必须位于dotnet/目录(对应 README 中 “go to autogen/dotnet folder”),否则dotnet tool无法定位 工具清单,docfx相对配置路径website/docfx.json也会失效。
  • 由于元数据阶段要求源码零编译错误且 dotnet/Directory.Build.props 全局启用了TreatWarningsAsErrors,任何会引入编译警告的代码改动都会连带使网站构建失败——修改dotnet/src下代码时应将网站构建纳入回归验证。
  • 网站文档的“编辑此页”贡献链接由docfx.json_gitContribute配置生成,指向上游仓库dotnet分支;本地克隆的分支名不同不影响该链接,只影响线上展示。

综上,AutoGen for .NET 网站是一条“本地工具清单 + DocFX 双阶段流水线(源码元数据 → API 参考,Markdown → 教程/文章)+ 三层模板”的标准 DocFX 文档站构建方案,核心命令只有两条,但其配置决定了 API 参考的过滤规则、站点元信息、导航结构与贡献入口,理解 docfx.json 的每个字段是定制此类文档站点的关键。

【免费下载链接】autogenA programming framework for agentic AI项目地址: https://gitcode.com/GitHub_Trending/au/autogen

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 15:45:47

150页林业产业战略PPT怎么做?十年规划师讲透实战要点

简介:林业产业发展战略是农林经济与管理领域的高价值专题,这份150页PPT以战略视角系统梳理林业产业的核心认识、发展现状、问题与机遇,以及未来趋势。面向林业系统从业者、农林经济专业师生与政策研究人员,可帮助读者快速把握林业…

作者头像 李华
网站建设 2026/9/6 15:42:42

吹吸机风扇注塑模具设计与模流分析全解析

简介:一份以吹吸机风扇塑料件为对象的注射模具设计与模流分析毕业设计说明书,适合模具设计与制造、材料成型等专业学生在毕业设计或课程设计中参考。文档以PA6材料为切入点,完整梳理了塑件结构工艺性分析、模具结构方案拟定、模架选用与校核、…

作者头像 李华
网站建设 2026/9/6 15:41:17

STM32+EC200S 4G Cat.1模组通过MQTT协议上云实战解析

简介:面向具备嵌入式C语言基础、熟悉STM32与UART通信的物联网开发者,这份资料围绕移远EC200S 4G模块,提供从零构建直连MQTT服务器物联网终端的完整方案,可解决远程数据上报和云端控制等典型需求。资源为单个PDF文档,约…

作者头像 李华
网站建设 2026/9/6 15:37:36

STM32+EC200S 4G模块MQTT通信实战:从AT指令到稳定上云

简介:面向具备嵌入式C语言基础、熟悉STM32与UART通信的物联网开发者,这份PDF资料围绕移远EC200S 4G Cat.1模块直连MQTT服务器展开,完整覆盖系统架构设计、硬件连接、AT指令驱动开发、MQTT协议封装、主程序集成、测试部署全流程,核…

作者头像 李华
网站建设 2026/9/6 15:30:59

DeepSeek与知识图谱融合:构建医疗智能问诊系统实战解析

简介:面向医疗信息化从业者、AI算法工程师与对智能问诊感兴趣的学习者,这份PDF系统讲解如何将DeepSeek与知识图谱结合,构建智能问诊系统。内容从医疗行业资源分布不均、服务效率低、数据利用率低等痛点切入,完整覆盖DeepSeek技术概…

作者头像 李华