在docfx项目中提取元数据时出错

如何解决在docfx项目中提取元数据时出错

尽管通读了docfx documentation和许多Github问题,但是我无法使docfx项目正常工作。

已采取的步骤:

  1. 初始化根目录docfx init -q
  2. 从根目录docfx build构建(无错误
  3. 投放docfx "/user/docfx_project/docfx.json" --serve

Stacktrace:

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
  • docfx 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 文件)的版本。

这是对 other issues in the past 的修复 - 有人声称已经修复了一段时间,但相同的解决方法似乎也适用于这个问题......至少在我的 CI 机器上。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?