c# - 在docfx项目中提取元数据时出错
问题描述
尽管阅读了docfx 文档和许多 Github 问题,但我无法让我的 docfx 项目正常工作。
采取的步骤:
- 初始化根目录
docfx init -q
- 从根目录构建
docfx build
(没有错误) - 服务
docfx "/user/docfx_project/docfx.json" --serve
堆栈跟踪:
Error:Error extracting metadata for /user/docfx_project/src/MyApp/MyApp.csproj,/user/docfx_project/src/MyApp.Tests/MyApp.Tests.csproj: System.NullReferenceException: Object reference not set to an instance of an object
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.SaveAllMembersFromCacheAsync () [0x00380] in <0779a76130d64c11baa2c8c084cbfe7c>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.ExtractMetadataAsync () [0x000c0] in <0779a76130d64c11baa2c8c084cbfe7c>:0
环境:
- OSX 10.13.6
- 文档 2.56.2.0
- .NET Core SDK (3.1.401)
- Mono JIT 编译器版本 6.10.0.104
项目结构:
docfx-project
|
+-- _site
+-- api
+-- apidoc
+-- articles
+-- docfx.json
+-- images
+-- index.md
+-- obj
+-- src
|
+-- MyApp
|
+-- MyApp.csproj
+-- toc.yml
docfx.json:
{
"metadata": [
{
"src": [
{
"files": [
"src/**/**.csproj"
]
}
],
"dest": "api",
"disableGitFeatures": false,
"disableDefaultFilter": false
}
],
"build": {
"content": [
{
"files": [
"api/**.yml",
"api/index.md"
]
},
{
"files": [
"articles/**.md",
"articles/**/toc.yml",
"toc.yml",
"*.md"
]
}
],
"resource": [
{
"files": [
"images/**"
]
}
],
"overwrite": [
{
"files": [
"apidoc/**.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"dest": "_site",
"globalMetadataFiles": [],
"fileMetadataFiles": [],
"template": [
"default"
],
"postProcessors": [],
"markdownEngineName": "markdig",
"noLangKeyword": false,
"keepFileLink": false,
"cleanupCacheHistory": false,
"disableGitFeatures": false
}
}
哈尔普。
解决方案
我不太清楚为什么会这样,但它在我的 CI 机器上的作用是export VSINSTALLDIR=
——换句话说,VSINSTALLDIR
在运行之前清除环境变量docfx metadata
。我相信这会影响 docfx 使用的 msbuild(或至少一些 msbuild 文件)的版本。
这是过去对其他问题的修复——有人声称已经修复了一段时间,但同样的解决方法似乎也适用于这个问题……至少在我的 CI 机器上。
推荐阅读
- php - 链接到本地子域
- c++ - Sizeof 模板返回意外的值
- c# - 一次请求内容下载两次
- python - BeautifulSoup 返回 None 但元素确实存在
- lua - LUA 获取最后一个表访问/操作时间
- algorithm - 算法的时间复杂度,将一个大小为 (n) 的问题分成 2 个大小为 (n-1) 的问题
- reactjs - 对我如何错误地设置状态感到困惑
- intellij-idea - Appcode 启动失败并显示“配置和系统路径似乎相等”
- javascript - Object.entries() 将键转换为数组
- asp.net - 如何在带有多个图像上传器的 asp classic 中使用 reCaptcha 2.0?