2016-12-02 39 views
4

我正在研究一个解决方案中有多个项目的项目。我希望能够从外部目录生成文档以保持应用程序代码文件夹的清洁。当我尝试在我的docfx.json中设置src目录时,它似乎不喜欢绝对路径,也不喜欢相对路径。DocFX:为多个项目生成API文档

{ 
    "metadata": 
    [{ 
     "src": 
     [{ 
       "files": ["../../../Repos/Wsi.Extranet.CommonServices/Wsi.Extranet.CommonServices/**/*.csproj"] 
       "exclude": 
       [ 
        "**/obj/**", 
        "**/bin/**", 
        "_site/**" 
       ] 
     }], 
     "dest": "api" 
}], 
"build": { 
"content": [ 
    { 
    "files": [ 
     "api/**.yml", 
     "api/index.md" 
    ] 
    }, 
    { 
    "files": [ 
     "articles/**.md", 
     "articles/**/toc.yml", 
     "toc.yml", 
     "*.md" 
    ], 
    "exclude": [ 
     "obj/**", 
     "_site/**" 
    ] 
    } 
], 
"resource": [ 
    { 
    "files": [ 
     "images/**" 
    ], 
    "exclude": [ 
     "obj/**", 
     "_site/**" 
    ] 
    } 
], 
"overwrite": [ 
    { 
    "files": [ 
     "apidoc/**.md" 
    ], 
    "exclude": [ 
     "obj/**", 
     "_site/**" 
    ] 
    } 
], 
"src": "../../../Repos/Wsi.Extranet.CommonServices/Wsi.Extranet.CommonServices", 
"dest": "_site", 
"globalMetadataFiles": [], 
"fileMetadataFiles": [], 
"template": [ 
    "default" 
], 
"postProcessors": [], 
"noLangKeyword": false 
} 
} 

它说它构建的很好,但没有找到任何文件,它搜索的目录停留在当前目录中。

D:\temp\WsiApiDocs\docfx_project>docfx metadata 
Info: Config file docfx.json found, start generating metadata... 
Info: No files are found with glob pattern **/*.csproj, excluding 
    **/obj/**,**/bin/**,_site/**, under directory "D:\temp\WsiApiDocs\docfx_project" 
Info: Completed executing in 54.0087 milliseconds. 


Build succeeded. 
    0 Warning(s) 
    0 Error(s) 

当我试图把相对路径中的文件属性,我得到如下:

D:\temp\WsiApiDocs\docfx_project>docfx metadata 
Info: Config file docfx.json found, start generating metadata... 
Info: No files are found with glob pattern 
../../../Repos/Wsi.Extranet.CommonServices/Wsi.Extranet.CommonServices/**/*.csproj, 
excluding **/obj/**,**/bin/**,_site/**, under directory 
"D:\temp\WsiApiDocs\docfx_project" 
**Warning: NOTE that `../` is currently not supported in glob pattern, please use `../` in `src` option instead.** 
Info: Completed executing in 48.9621 milliseconds. 


Build succeeded with warning. 
Warning: NOTE that `../` is currently not supported in glob pattern, please use `../` in `src` option instead. 
    1 Warning(s) 
    0 Error(s) 

所以我的困惑似乎是在如何使用src选项,而不是。如果在元数据中使用src,那么似乎我无法指定文件和排除信息。我试图使用与元数据相同级别的src属性,但似乎什么都不做。

回答

10

正如错误状态

../目前没有glob模式

filesexclude等使用glob模式的支持。设置基本目录中,而不是通过src

{ 
    "metadata": [ 
    { 
     "src": [ 
     { 
      "files": "Repos/Wsi.Extranet.CommonServices/Wsi.Extranet.CommonServices/**.csproj", 
      "exclude": [ 
      "**/obj/**", 
      "**/bin/**" 
      ], 
      "src": "../../.." // <---- base directory 
     } 
     ], 
     "dest": "api" 
    } 
    ], 
    "content": [ 
    { 
     "files": [ 
     "api/**.yml", 
     "api/index.md" 
     ] 
    } 
    // ... 
    ] 
} 

Here是构建多个项目

+1

真棒...感谢马库斯
的一个实例!我不知道为什么我比它更难。当它说通过src设置基本目录时,我想这是在谈论父src节点。它甚至没有进入我的想法把一个孩子src放在父src节点中。 您构建多个项目的链接也非常有帮助。 –