Sandcastle CTP版 を試した
最新情報:Sandcastleまとめページ
早速サンドキャッスル(Sandcastle) CTP版を試してみた。 NDoc 2.0が止まっている今となっては、サンドキャッスルに大きな期待をしている。それにしても、日本語での情報が余りに少ないのはどうなのだろう。 日本では余り需要が無いのだろうか。 GrapeCityをはじめとする.NET コンポーネントを販売している企業も余り多くはないと思うが、システム開発関連でもドキュメント生成は必要だと思うのだが...。 まあ、自分が使いたい(仕事を含めて)ということで、早速ダウンロードして試してみた。
インストールを行うと、少なくとも環境変数PATHは変更されるようです。
ミッション クリティカルな環境に入れないように注意する必要があります。
Sandcastleの動作要件
Sandcastle CTP版を動作させるには、.NET Framework 2.0とHTML Help Workshop が必要となります。.NET Framework 2.0 は Windows Updateからインストールすることが出来ます。
HTML Help Workshop は CHM の生成に使用されるための次のURLからダウンロードしてインストールしておきます。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp
ダウンロード
Sancastle CTP版は次のURLからダウンロードしてインストールします。 http://www.microsoft.com/downloads/details.aspx?FamilyId=E82EA71D-DA89-42EE-A715-696E3A4873B2&displaylang=en/// によりコメントされたC#のコードを元にCHMを生成してみる
試しに、ここまでのMicroRssReaderのコードを使用してヘルプを生成してみます。 MicroRssReaderのプロジェクトはXMLドキュメントを生成するように設定されていないため、まずプロジェクトを変更します。XMLドキュメントを生成するためプロジェクト設定の変更
- MicroRssReaderのソリューションを開きます。
- MicroRssReaderのプロジェクトプロパティを表示します。
- 「ビルド」タブを選択します。
- "出力"項目の「XML ドキュメント ファイル」にチェックを入れます。
- リビルドします。
CHMを生成してみる
まず、SandcastleBlog内の説明に従ってヘルプを生成してみます。
1. コマンドプロンプトを開き、プロジェクトのbin¥Debugに移動します。
cd C:\Develop\RSSリーダを作る\RssReader\MicroRssReader\bin\Debug
2. 次に、MRefBuilderを実行します。
MRefBuilder MicroRssReader.exe /out:reflection.org
3. 変換を行います。
set prodtrans="C:\Program Files\Sandcastle\ProductionTransforms"
XslTransform %prodtrans%\AddOverloads.xsl reflection.org |
XslTransform %prodtrans%\AddGuidFilenames.xsl /out:reflection.xml
4. マニフェストを生成します。
XslTransform %prodtrans%\ReflectionToManifest.xsl reflection.xml /out:manifest.xml
5. 次のようなバッチファイルを作成して保存しておきます。
ファイル名は copyOutput.batにします。
set sandcastle="C:\Program Files\Sandcastle"
if not exist Output mkdir Output
if not exist Output\html mkdir Output\html
if not exist Output\art mkdir Output\art
if not exist Output\scripts mkdir Output\scripts
if not exist Output\styles mkdir Output\styles
copy %sandcastle%\Presentation\art\* Output\art
copy %sandcastle%\Presentation\scripts\* Output\scripts
copy %sandcastle%\Presentation\styles\* Output\styles
6. バッチファイルを実行します。
copyOutput.bat
7. コンフィグレーションをコピーして編集。
copy "C:\Program Files\Sandcastle\Presentation\Configuration\sandcastle.config" .
コピーしたsandcastle.configをエディタで開き、次のように置換を行い保存します。
"..\.." → "C:\Program Files\Sandcastle"
"..\cpref_reflection" → "C:\Program Files\Sandcastle\Examples\Cpref_reflection"
"comments.xml" → "MicroRssReser.XML"
8. BuildAssembler を実行します。
BuildAssembler /config:sandcastle.config manifest.xml
9. HTMLヘルプのTOCを生成します。
XslTransform %prodtrans%\ReflectionToChmContents.xsl reflection.xml
/arg:html=Output\html /out:test.hhc
10. test.hhc を Outputディレクトリに移動する
copy test.hhc Output
11. hhp を Outputディレクトリにコピーする
copy "C:\Program Files\Sandcastle\Presentation\Chm\test.hhp" Output
12. Chmを生成するために hhc (HTML Help 1.x Compiler)を実行します
cd Output
"C:\Program Files\HTML Help Workshop\hhc" test.hhp
13. Chmを表示
test.chm
興味がある人のために、生成されたCHMファイルをサンプルとして置いておきます。
Test.zipファイルをダウンロード
出力結果について
- MSDNの形式とも異なるため、見慣れない感があります
- 日本語も正しく表示され、特に化けている所などもありません。
- ///で書いているコメントも表示されていますが、任意改行が無視されています。
- 単に継承しているメンバを消せるのは良いですね。
- ジェネリックも正しくドキュメント出力されています。
- メソッド パラメータの型等が自動的にリンクにならない。
- フッタ(Copyrightの所)の変更方法が説明されていない。
- 複数のDLLやEXEからドキュメントをマージ生成する方法が説明されていない
- MSDNへのリンクが自動生成されない。
- privateメンバをドキュメントに出力する方法が分からない
Sandcastle CTP版の印象
とりあえず、どのようなドキュメントが生成されるかは分かります。 ドキュメントの精度についてはほとんど問題ないと思います。
これでNDocレベルのカスタマイズが出来るようになれば十分NDocに取って代わることが出来ると思います。
出力までの手順は面倒であるが、正式版ではもっと楽になると期待しています。

2 Comments
http://www.hotdocument.net/を使えばかなり代用できると
ともいますが。。。
Posted by NEWS at 2008年9月 6日 10:27
NEWSさんコメントありがとうございます。
hotdocumentですね。
かなり前に、Cで開発していた頃に使っていたことがあります。
Excelでコーリングシーケンスなどを出力してドキュメント作成を楽させてもらった覚えがあります。
hotdocumentがsandcastleの代用ではなくむしろ逆のような気もしますが。
最初調べていた時に、まともにMSDNライブラリライクに出力できたのがNDocだけだった気がします。
Posted by Anonymous at 2008年9月 7日 22:59