簡體   English   中英

在 docfx 項目中提取元數據時出錯

[英]Error extracting metadata in docfx project

盡管通讀了docfx 文檔和許多 Github 問題,我還是無法讓我的 docfx 項目正常工作。

采取的步驟:

  1. 初始化根目錄docfx init -q
  2. 從根目錄docfx build (沒有錯誤)
  3. 服務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 核心 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= - 換句話說,在運行docfx metadata之前清除VSINSTALLDIR環境變量。 我相信這會影響 docfx 使用的 msbuild(或至少某些 msbuild 文件)的版本。

這是過去其他問題的修復 - 有人聲稱已經修復了一段時間,但相同的解決方法似乎也適用於這個問題......至少在我的 CI 機器上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM