もくじ
→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











