取代Sandcastle的新文件產生器DocFx

DocFx

DocFx是微軟新推出的文件生成工具,並且也是一個OpenSource的專案(Github),可以將文件產生網站形式,目前支援C#和VB。與Sandcastle不同的是,可以由nuget下載安裝,並且設定也由xml轉變為json。DocFx還有許多不錯的功能

  • 支援DNX
  • Markdown
  • Custom Templates(說明)

接著來看如使用DocFx快速地產出文件吧。

首先,請先使用nuget安裝DocFx的套件,在這裡有一個需要注意的地方,我們需要下載的套件名稱應該是docfx.msbuiled。 nuget docfx.msbuild

為甚麼是docfx.msbuild而不是docfx呢,因為如果是安裝docfx會一直出現.net Framdwork不相容

docfx目前猜測應該是給DNX使用,所以要安裝有特別註明msbuild套件。

安裝好之後可以看到多了一些相關的檔案docfx.json與toc.yml

點開docfx.json,可以看到資料來源和編譯的設定都在這邊,但是,基本上是不需要做任何變更。

{
  "metadata": [
    {
      "src": [
        {
          "files": [ "**/*.csproj" ],
          "exclude": [ "**/bin/**", "**/obj/**" ]
        }
      ],
      "dest": "obj/api"
    }
  ],
  "build": {
    "content": [
      {
        "files": [ "**/*.yml" ],
        "cwd": "obj/"
      },
      {
        "files": [ "**.md", "toc.yml" ]
      }
    ],
    "resource": [
      {
        "files": [ "**/images/**" ]
      }
    ],
    "externalReference": [
    ],
    "globalMetadata": {
    },
    "template": [
      "default"
    ],
    "dest" : "_site"
  }
}

不過,在測試的過程中,筆者遇到一個滿奇怪的環境問題,當專案使用.net Framework 4.5.1時,一直遇到一個奇怪的錯誤

結果照著錯誤的路徑找到System.Data.dll結果真的是0KB,這是比較怪異的環境問題,如果大家有使用.net Framework 4.5.1可能要稍微注意一下。

最後,來看一下產出的說明文件

文件的樣式稍微跟Sandcastle有些許不同,但是還是相當美觀的,起碼不用自己寫就很棒了(話說,在甚麼都講自動化的年代,應該也很少人會自己寫了)。

結論

這一篇先稍微介紹一下怎麼使用DocFx,在官方網站有提供.exe的執行檔,下一篇再來談談如何將這一個套件整合到CI Server上,讓產文檔這一件是融入到CI\CD的過程中。

補充說明

如果大家要把程式上的說明,像是類別、方法上的summary,parameters的說明也輸出到文件上只需要讓建置時讓XML輸出即可

參考資料

免責聲明:

"文章一定有好壞,文章內容有對有錯,使用前應詳閱公開說明書"