2016-12-02 16 views
4

Я работаю над проектом, который имеет несколько проектов в решении. Я хотел бы иметь возможность генерировать документацию из внешнего каталога, чтобы сохранить коды кода приложения в чистоте. Когда я пытаюсь установить каталог src в моем docfx.json, это не похоже на абсолютные пути, равно как и на относительные пути.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 шаблон

files, exclude и т.д. использовать 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 является exmaple структурирования нескольких проектов

+1

Удивительный ... спасибо Marcus !. Я не знаю, почему я делал это сложнее, чем было. Когда он сказал, чтобы установить базовый каталог через src, я думал, что речь идет о родительском узле src. Мне даже не приходило в голову поставить дочерний src в родительский узел src. Ваша ссылка на структурирование нескольких проектов также была очень полезной. –