![](/img/trans.png)
[英]docfx metadata step fails with error “Could not load SDK Resolver”
[英]Error extracting metadata in docfx project
盡管通讀了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
環境:
項目結構:
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=
- 換句話說,在運行docfx metadata
之前清除VSINSTALLDIR
環境變量。 我相信這會影響 docfx 使用的 msbuild(或至少某些 msbuild 文件)的版本。
這是過去其他問題的修復 - 有人聲稱已經修復了一段時間,但相同的解決方法似乎也適用於這個問題......至少在我的 CI 機器上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.