使用DocFx构建文档站点仅展示少量类型与成员问题求助
排查方案
- 检查访问修饰符与默认过滤规则
你当前配置中disableDefaultFilter为false,DocFx默认仅收录public访问级别的类型与成员,未显式加访问修饰符的类默认是internal级别,不会被导出。你切换到.NET Core 3.0后仅部分文件出现XML注释警告,也刚好对应这些文件是项目中仅有的public级别类型,其他非公开类型默认不会触发XML注释缺失警告,与该逻辑吻合。可按需选择以下方案:- 将需要展示的类型/成员修改为
public - 关闭默认过滤:在
metadata节点下添加"disableDefaultFilter": true,同时可按需添加"includeInternalMembers": true、"includePrivateMembers": true配置来包含非公开成员
- 将需要展示的类型/成员修改为
- 升级DocFx版本适配新框架
你使用的2.58.9.0属于较老版本,对.NET 5及更高版本的框架、新C#语法适配存在较多缺陷。如果你的项目目标框架高于.NET Core 3.1,建议升级到DocFx最新稳定版(2.70+版本)。 - 确认XML文档生成配置
检查所有项目的生成属性中,「XML文档文件」选项已开启,且Debug/Release所有配置下都生成XML文件,DocFx需要依赖生成的XML文档匹配元数据。 - 开启详细日志确认扫描范围
运行docfx metadata --logLevel Verbose命令,查看日志输出中是否扫描到了所有你期望收录的.csproj文件,是否有跳过项目/文件的提示,确认cwd配置的相对路径与实际文件结构匹配。 - 先保证项目可正常编译
DocFx生成元数据时依赖MSBuild编译项目获取结构,若项目本身存在编译错误、依赖缺失,也会导致元数据扫描不完整。
内容的提问来源于stack exchange,提问作者Dominik Beyerle
相关产品推荐
相关产品推荐

