You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DocFX引用.NET/ASP.NET Core类型遇UidNotFound错误求助

针对DocFX交叉引用.NET/ASP.NET Core类型失效问题的解答与建议


1. DocFX或Microsoft xref服务是否有已知变更导致此问题?

  • 微软的xref服务曾进行过端点逻辑和响应格式调整,DocFX 2.74.0属于较旧版本,对最新的xref服务返回数据适配性不足,无法正确解析UID信息,从而触发UidNotFound警告。
  • 部分用户反馈,微软xref服务更新后,对UID查询的返回字段结构有变化,旧版DocFX的解析逻辑未同步更新,导致识别失败。

2. 需注意哪些特定配置或版本兼容性以确保.NET/ASP.NET Core类型交叉引用正常?

  • 版本适配:优先升级DocFX到最新的2.x稳定版(如2.76.0及以上),新版本会同步适配微软xref服务的变更,减少兼容性问题。
  • xref服务配置:确认xrefService端点配置正确,当前官方推荐的端点为https://learn.microsoft.com/api/xref/query?uid={uid};若在线服务不稳定,可补充本地xref文件——通过安装对应.NET版本的Microsoft.DocAsCode.XRefMap.* NuGet包,将生成的xrefmap.xml路径加入docfx.json的xref配置项。
  • 框架一致性:文档中引用的.NET类型需与项目目标框架匹配,若项目目标框架不包含该类型(比如目标.NET Framework却引用.NET Core专属类型),DocFX无法从本地程序集获取UID,依赖在线服务失败时就会报错。

3. 项目或DocFX设置中是否存在其他可能引发UidNotFound错误的因素?

  • UID大小写问题:xref的UID严格区分大小写,检查文档中<xref:Microsoft.Extensions.Hosting.IHost>的拼写是否完全匹配(包括命名空间、类型名的大小写)。
  • 元数据扫描缺失:若DocFX未扫描到包含目标类型的程序集,会依赖在线服务查询。检查docfx.json的metadata配置,确保包含项目输出程序集或相关NuGet包的程序集路径。
  • 缓存干扰:DocFX会缓存xref查询结果,若缓存中存在旧的无效数据,可能导致查询失败。可删除DocFX缓存目录(默认在_site/.cache或obj/docfx下)后重新构建。
  • 网络限制:确认构建环境可正常访问微软xref服务,若网络受限,在线查询会失败,需切换到本地xref文件。
  • 文档格式错误:检查xref标签格式是否正确,避免多余空格、符号,或误写为其他引用格式(如@ref而非<xref:...>)。

内容的提问来源于stack exchange,提问作者Martin Obrátil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 02:20:24