LoginSignup
9
8

More than 3 years have passed since last update.

[SandCastle] C#のxmlコメントからヘルプファイル(.chm)を作成する

Last updated at Posted at 2020-04-28

もくじ
https://qiita.com/tera1707/items/4fda73d86eded283ec4f

やりたいこと

SandcastleHelpFileBuilderというものを使ってマニュアル(ヘルプファイル)を作っているライブラリがあり、そのマニュアル作成のための環境を作るということをしたので、その際のメモを残す。

下記のような、そのDLLで使用できるAPIの一覧と説明を記載したもの(.chmファイル)ができるイメージ。
image.png

手順

SandcastleHelpFileBuilderをダウンロード

下記からダウンロードする。
https://github.com/EWSoftware/SHFB/releases
今回はv2020.3.6.0を使用(VisualStudio2019でも使える)

image.png

zipをダウンロード
image.png

インストール

SandcastleInstaller.exeをたたいてインストール
image.png

Sandcastle Help File Builder and Toolsが表示されるまでNextを押す
image.png

Install SHFBを押す
image.png

案内の通り、標準のままNext押していく
image.png

SHFBインストール 完
image.png
ここにインストールされたらしい。NEXT押す。
image.png

VS2017,2019でつかえるようにするためのパッケージを入れる。
InstallPackageを押し、案内の通りにインストールする
image.png

Vsix Installerがでてくるので、言われた通りインストールしていく。
終わったらNext。
image.png

今のところ、コメントは手書きで全部書くので、この機能は使わなさそうのためinstallせずNext。
image.png

これも同様。
image.png

次へ。
image.png

次へ。
image.png

インストール作業は完了。PCを再起動する。
image.png

VS上の作業

ドキュメントを作成したいC#のDLLのプロジェクトのプロパティを開き、
[ビルド] > [出力] の欄の[XMLドキュメントファイル] にチェックを入れる。
(パスはデフォルトでOK)
image.png

それでビルドすると、ドキュメント用xmlが、出力先フォルダに生成される。
image.png

ドキュメントを作成したいC#のDLLのプロジェクトを含むソリューションを、VisualStudioのソリューションエクスプローラで右クリックし、新規プロジェクトの追加を選択する。
[プロジェクトの種類]から[Documentation]を選択、それで出てきた[Sand Castle HelpFile Buidler]を選んで決定する。
image.png

Documentのプロジェクトが作成される
image.png

Documentation Sourcesを右クリックし、Add Documentation Sourceを選ぶ
image.png

ドキュメントを作成したいC#のDLLの、出力されたdllを選択する。
image.png

あとは任意で、プロジェクトの設定を好きに変える。
(以下、個人の趣味で変えたとこだけ)

ドキュメントの.chmファイルの出力先を好きなところにする。
(ドキュメントのプロジェクトの場所を基準に、相対パスOK。)
image.png

デフォルトではC++などにもチェックが入っているが、C#だけでよいのでC#のみにチェックする。
今回欲しいのは.chmのヘルプファイルのみなので、HTML Help1(chm)にチェックを入れる。
image.png

Help File nameが、chmファイルの名前に、Help titleが、ヘルプウインドウのタイトルになる。
image.png
ウインドウのタイトル
image.png

image.png

protectedのメンバとか、その他もろもろとりあえずいらない奴は外しておく。
image.png

Contentフォルダの中にWelcome.amlというファイルがあり、そこにヘルプファイルを開くと最初に表示されるWelcomeページの記述がある。
そのWelComeページの中身は、下の方にあるContentLayout.contentファイルをいじるといろいろ変えれるっぽいが、今回はそういうことはせず、DLLの仕様だけchmでわかればよいので削除して割愛。
image.png

最終的に下記のように構成を間引いた。
image.png

出力ファイルは下記。
image.png

こんな感じで出力された。
image.png
コメントをちゃんと書いてないのでエラー表示になってるが、ちゃんと書けばちゃんと出るはず。

参照

Sandcastle(XMLコメントからAPIヘルプ生成)
ほぼこちらに書いている内容を参考にさせて頂きました。ありがとうございます。
https://blog.nextscape.net/research/dotnetenv/sandcastle

サンドキャッスルのgithubページ
https://github.com/EWSoftware/SHFB

サンドキャッスルのRelease版ダウンロードページ
https://github.com/EWSoftware/SHFB/releases

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8