もくじ
→https://qiita.com/tera1707/items/4fda73d86eded283ec4f
やりたいこと
SandcastleHelpFileBuilder
というものを使ってマニュアル(ヘルプファイル)を作っているライブラリがあり、そのマニュアル作成のための環境を作るということをしたので、その際のメモを残す。
下記のような、そのDLLで使用できるAPIの一覧と説明を記載したもの(.chmファイル)ができるイメージ。
手順
SandcastleHelpFileBuilderをダウンロード
下記からダウンロードする。
https://github.com/EWSoftware/SHFB/releases
今回はv2020.3.6.0
を使用(VisualStudio2019でも使える)
インストール
SandcastleInstaller.exeをたたいてインストール
Sandcastle Help File Builder and Toolsが表示されるまでNextを押す
SHFBインストール 完
ここにインストールされたらしい。NEXT押す。
VS2017,2019でつかえるようにするためのパッケージを入れる。
InstallPackageを押し、案内の通りにインストールする
Vsix Installerがでてくるので、言われた通りインストールしていく。
終わったらNext。
今のところ、コメントは手書きで全部書くので、この機能は使わなさそうのためinstallせずNext。
VS上の作業
ドキュメントを作成したいC#のDLLのプロジェクトのプロパティを開き、
[ビルド] > [出力] の欄の[XMLドキュメントファイル] にチェックを入れる。
(パスはデフォルトでOK)
それでビルドすると、ドキュメント用xmlが、出力先フォルダに生成される。
ドキュメントを作成したいC#のDLLのプロジェクトを含むソリューションを、VisualStudioのソリューションエクスプローラで右クリックし、新規プロジェクトの追加を選択する。
[プロジェクトの種類]から[Documentation]を選択、それで出てきた[Sand Castle HelpFile Buidler]を選んで決定する。
Documentation Sourcesを右クリックし、Add Documentation Sourceを選ぶ
ドキュメントを作成したいC#のDLLの、出力されたdllを選択する。
あとは任意で、プロジェクトの設定を好きに変える。
(以下、個人の趣味で変えたとこだけ)
ドキュメントの.chmファイルの出力先を好きなところにする。
(ドキュメントのプロジェクトの場所を基準に、相対パスOK。)
デフォルトではC++などにもチェックが入っているが、C#だけでよいのでC#のみにチェックする。
今回欲しいのは.chm
のヘルプファイルのみなので、HTML Help1(chm)
にチェックを入れる。
Help File name
が、chmファイルの名前に、Help title
が、ヘルプウインドウのタイトルになる。
ウインドウのタイトル
protectedのメンバとか、その他もろもろとりあえずいらない奴は外しておく。
Contentフォルダの中にWelcome.aml
というファイルがあり、そこにヘルプファイルを開くと最初に表示されるWelcomeページの記述がある。
そのWelComeページの中身は、下の方にあるContentLayout.contentファイルをいじるといろいろ変えれるっぽいが、今回はそういうことはせず、DLLの仕様だけchmでわかればよいので削除して割愛。
こんな感じで出力された。
コメントをちゃんと書いてないのでエラー表示になってるが、ちゃんと書けばちゃんと出るはず。
参照
Sandcastle(XMLコメントからAPIヘルプ生成)
ほぼこちらに書いている内容を参考にさせて頂きました。ありがとうございます。
https://blog.nextscape.net/research/dotnetenv/sandcastle
サンドキャッスルのgithubページ
https://github.com/EWSoftware/SHFB
サンドキャッスルのRelease版ダウンロードページ
https://github.com/EWSoftware/SHFB/releases